导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

对于被绑定的数据库表,如何每当到了一个记录时,调用一个处理子程序或事件? 50分

BCB 2004-12-24 02:11:22
当前记录到了那条记录,就调用一个子程序或事件处理一下,用什么事件呢
...全文
72 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCB 2004-12-30
人气这么不足呀,这C#没人会?!
回复
BCB 2004-12-29
欢迎继续讨论这个问题,分会再加的!
回复
BCB 2004-12-29
不错,谢了。
1。绑定基事件Position_Changed()第一条记录不引起事件,因为记录号变了才发生事件的,
解决这个问题很简单,初始时,自已先调用一次这个事件;不过有没有其它解决办法;
2。有dataGrid时遇到点麻烦,我这个dataGrid1是放在TabControl1中另一个tabPage5中的,
如果不去这个tabPaghe5看一dataGrid1,这个Position_Changed()就是不执行,虽然在
textBox1中看到记录变化,除非去看一下dataGrid1
private void Form1_Load(object sender, System.EventArgs e)
{
oleDbConnection1.Open();
oleDbDataAdapter1.Fill(dataSet1);
DataTable table=dataSet1.Tables[0];
dataGrid1.DataSource=table;
textBox1.DataBindings.Add("Text",table,"姓名");


BindingManagerBase bm =
this.BindingContext [table];

// Add the delegate for the PositionChanged event.
bm.PositionChanged += new EventHandler(Position_Changed);
}
private void Position_Changed(object sender, EventArgs e)
{
// Print the Position property value when it changes.
int p=((BindingManagerBase)sender).Position;
statusBar1.Panels[0].Text=p.ToString();
}

private void button1_Click(object sender, System.EventArgs e)
{
DataTable table=dataSet1.Tables[0];
this.BindingContext [table].Position++; // 上一条记录
}

private void button2_Click(object sender, System.EventArgs e)
{
DataTable table=dataSet1.Tables[0];
this.BindingContext [table].Position--;  // 下一条记录
}
回复
yhec 2004-12-29
up
回复
marvelstack 2004-12-28
BindingManagerBase.PositionChanged 事件
============================================
protected void BindControl()
{
/* Create a Binding object for the TextBox control.
The data-bound property for the control is the Text
property. */
Binding myBinding =
new Binding("Text", ds, "customers.custName");

text1.DataBindings.Add(myBinding);

// Get the BindingManagerBase for the Customers table.
BindingManagerBase bmCustomers =
this.BindingContext [ds, "Customers"];

// Add the delegate for the PositionChanged event.
bmCustomers.PositionChanged +=
new EventHandler(Position_Changed);
}

private void Position_Changed(object sender, EventArgs e)
{
// Print the Position property value when it changes.
Console.WriteLine(((BindingManagerBase)sender).Position);
}
回复
BCB 2004-12-28
嫌分少?!
回复
BCB 2004-12-27
其实我只想将当前记录号显示在状态栏,就是说每当改变了当前
记录,状态栏就显示记录号,需要一个事件,每当当前记录移动了,
事件发生了,就在状态栏显示记录号,
什么事件能满足这个条件呢?
回复
BCB 2004-12-25
没高手?
回复
yhec 2004-12-25
up
回复
yhec 2004-12-24
GZ
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.