激发 Windows 窗体 CurrencyManager 事件

http://support.microsoft.com/kb/312045/zh-cn

 

本文将引用下面的 Microsoft.net 框架类库命名空间:

  • System.Data.SqlClient

本页

概要
CurrencyManager 对象允许您绑定的控件用户浏览到一个表中的行时进行同步。 渚嬪 CurrencyManager 允许您在单独的、 绑定 文本框 控...

CurrencyManager 对象允许您绑定的控件用户浏览到一个表中的行时进行同步。 渚嬪 CurrencyManager 允许您在单独的、 绑定 文本框 控件中显示正确的 名字姓氏 属性,如用户浏览到雇员表。

CurrencyManager 具有三个事件: CurrentChangedItemChanged,和 PositionChanged。 跟踪当用户将移至行和绑定的控件中的用户编辑值时,您可以使用这些事件。 本文介绍了哪些操作会导致各种 CurrencyManager 事件被引发。

本文分为以下几节: " Sample code 节演示 CurrencyManager 事件的触发。

更多信息
CurrentChanged 事件CurrentChangedCurrencyManager 激发 CurrencyManager 列表中当前行的行的绑定的值更...

CurrentChanged 事件

CurrentChanged CurrencyManager 激发 CurrencyManager 列表中当前行的行的绑定的值更改时的事件。

专门, CurrentChanged 的事件在下列情况下 CurrencyManager 激发:
  • 当用户更改 CurrencyManager 列表中的行的位置,以便不同的值是绑定的控件中。
  • 当用户更改当前行的 CurrencyManager 中绑定的值。
  • 当用户添加一个行低于 CurrencyManager 列表中的当前位置的位置。
  • 当用户删除 CurrencyManager 列表中的当前行。
  • 当用户删除位于列表中的当前位置之前的行。
  • 用户通过排序如刷新的列表。
  • 用户在列表中的另一个位置以在 CurrencyManager 中移动的当前行。
  • 当用户将移到当前的位置列表中某行。
  • CurrencyManager数据源 属性的更改时。

ItemChanged 事件

ItemChanged CurrencyManager 激发 CurrencyManager 中的任何行中的任何项目更改直接通过数据源时的事件。 通过用户界面 (UI) 更改值时,则不会触发 ItemChanged 事件。

专门, ItemChanged 的事件在下列情况下 CurrencyManager 激发:
  • 当用户调用 CurrencyManager 中的 CancelCurrentEdit 的方法。
  • 当用户将某一行向 CurrencyManager 列表中。
  • 当用户将从 CurrencyManager 列表中删除任何行。
  • 当用户更新 CurrencyManager 列表中的任何行。
  • 用户通过排序如刷新的 CurrencyManager 列表。
  • CurrencyManager数据源 属性的更改时。

PositionChanged 事件

CurrencyManager 列表中的 位置 属性更改时,将触发 PositionChanged 事件。 Position 属性是 CurrencyManager 列表中的行的当前的位置。

专门, PositionChanged 的事件在下列情况下 CurrencyManager 激发:
  • 当用户移到不同的行,隐式地更改 CurrencyManager位置 属性。
  • 当以编程方式更改 CurrencyManager位置 属性。

绀轰緥浠 g 爜

CurrencyManager 事件触发时,此示例代码将显示消息框。 该代码使用 Microsoft SQL Server Northwind 数据库的雇员表。
  1. 创建一个新的 Visual C# Windows 应用程序项目。 榛樿鎯呭喌涓嬶,Form1 添加到项目中。
  2. 向 Form1 中添加三个 文本框 控件。 默认情况下添加 Textbox1Textbox2,和 Textbox3
  3. 向 Form1 中添加五个 按钮 控件。 默认情况下将添加 Button1 通过 Button5
  4. 更改 按钮 的属性,如下所示:
    收起该表格 展开该表格
    按钮(名称)文本
    Button1cmdFirst<<
    Button2cmdPrevious<
    Button3cmdNext>
    Button4cmdLast>>
    Button5cmdCancelEdit撤消
  5. 打开 Form1 的代码窗口。 将以下代码粘贴到代码窗口的最上端在包含 using 语句的部分:
    using System.Data;
    using System.Data.SqlClient;
    					
  6. 使其在每个按钮中可用,必须在窗体级别范围内定义 CurrencyManager。 将以下代码粘贴到类声明之前立即 公用 Form1:
    private CurrencyManager myCurrencyManager;
    					
  7. 将以下代码添加到 Form1_Load 事件过程。 此代码将打开雇员表,然后将文本框绑定到 雇员 id名字,和 姓氏 属性:
    // Open a connection to the SQL Server Northwind database. 
    // Modify the following line to connect with your SQL Server and log on.
    SqlConnection con = new SqlConnection("server=server;uid=login;pwd=password;
                                          database=northwind");
    
    // Open the Employees table.
    SqlDataAdapter daCust = new SqlDataAdapter("Select * from Employees", con);
    
    // Store the Employees into a local table.
    DataSet ds = new DataSet();
    daCust.Fill(ds, "Employees");
    
    // Bind the TextBox controls to the fields of the Employees table.
    textBox1.DataBindings.Add("Text", ds.Tables["Employees"], "EmployeeID");
    textBox2.DataBindings.Add("Text", ds.Tables["Employees"], "FirstName");
    textBox3.DataBindings.Add("Text", ds.Tables["Employees"], "LastName");
    
    // Specify the CurrencyManager for the Employees table.
    myCurrencyManager = (CurrencyManager)this.BindingContext[ds.Tables["Employees"]];
    
    // Specify the event handlers for the CurrencyManager.
    myCurrencyManager.CurrentChanged += new EventHandler(Current_Changed);
    myCurrencyManager.ItemChanged += new ItemChangedEventHandler(CurrencyManager_ItemChanged);
    myCurrencyManager.PositionChanged += new EventHandler(Position_Changed);
    					
  8. Form1_Load 事件过程后立即粘贴下面的代码。 此代码声明 CurrencyManager 事件,并显示消息框,如每个事件触发:
    private void Current_Changed(object sender, EventArgs e) {
        MessageBox.Show("Current_Changed");
    }
    
    private void CurrencyManager_ItemChanged(object sender, 
    System.Windows.Forms.ItemChangedEventArgs e){
        MessageBox.Show("Item_Changed");
    }
    
    private void Position_Changed(object sender, EventArgs e){
        MessageBox.Show("Position_Changed");
    }
    					
  9. 双击 cmdFirst 以打开其代码窗口。 将以下代码粘贴到 cmdFirst_Click 事件过程:
    // Move to the first row in the DataTable.
    myCurrencyManager.Position = 0;
    					
  10. 双击 cmdPrevious 以打开其代码窗口。 将以下代码粘贴到 cmdPrevious_Click 事件过程:
    // If you are positioned past the first row,
    if (myCurrencyManager.Position > 0) {
        // move back one row.
        myCurrencyManager.Position -= 1;
    }
    					
  11. 双击要打开其代码窗口的 cmdNext。 将以下代码粘贴到 cmdNext_Click 事件过程:
    // If you are positioned before the last row,
    if (myCurrencyManager.Position < myCurrencyManager.Count) {
         //move back one row.
         myCurrencyManager.Position += 1;
    }
    					
  12. 双击 cmdLast 以打开其代码窗口。 将以下代码粘贴到 cmdLast_Click 事件过程:
    // Position at the last row.
    myCurrencyManager.Position = myCurrencyManager.Count;
    					
  13. 双击 cmdCancelEdit 以打开其代码窗口。 将以下代码粘贴到 cmdCancelEdit_Click 事件过程:
    // Cancel the current editing in the bound controls.
    myCurrencyManager.CancelCurrentEdit();
    					
  14. 修改连接字符串,使用您 SQL Server 并登录到连接。
  15. 按 F5 生成并运行的项目。
  16. 单击要在行之间浏览按钮。 这将引发 CurrentChanged 事件和 PositionChanged 事件。
  17. 修改 名字 框或 姓氏 框中的值,然后移到不同的行。 这将引发 CurrentChanged 事件和 PositionChanged 事件。
  18. 修改一个值,然后单击 撤消 取消更改。 这将引发 ItemChanged 事件。

参考
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 308484  (http://support.microsoft.com...

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
308484  (http://support.microsoft.com/kb/308484/ ) 如何通过使用 Visual C#.net 在 Windows 窗体数据网格中显示父和子记录
有关详细信息请参阅 Visual Studio.net 帮助文档中的下列主题:
在 Windows 窗体上的数据的使用者
http://msdn2.microsoft.com/en-us/library/aa983578(VS.71).aspx (http://msdn2.microsoft.com/en-us/library/aa983578(VS.71).aspx)

CurrencyManager 类
http://msdn.microsoft.com/en-us/library/system.windows.forms.currencymanager.aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.currencymanager.aspx)

CurrencyManager 的事件
http://msdn.microsoft.com/en-us/library/system.windows.forms.currencymanager_events.aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.currencymanager_events.aspx)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值