此代码会两次触发选择更改事件。我怎样才能防止它? 目前我正在使用标志或集中属性来防止这种情况。但实际的方式是什么?DataGridView的SelectionChange事件即使在移除事件绑定后也会在DataBinding上触发两次
我使用它winfoms
编辑
我写问题的错误,这里是正确的代码,我想问
private void frmGuestInfo_Load(object sender, EventArgs e)
{
this.dgvGuestInfo.SelectionChanged -= new System.EventHandler(this.dgvGuestInfo_SelectionChanged);
dgvGuestInfo.DataSource=dsFillControls.Tables["tblName"];
this.dgvGuestInfo.SelectionChanged += new System.EventHandler(this.dgvGuestInfo_SelectionChanged);
}
private void dgvGuestInfo_SelectionChanged(object sender, EventArgs e)
{
//this function is raised twice, i was expecting that this will not be raised
}
为什么会发生这种情况,怎么可能避免。我甚至取消了事件,此刻我正在设置数据传输并在此之后重新绑定事件。那么为什么它仍然会引发事件 – 2010-06-03 15:44:05
你为什么要设置'DataSource'两次?在处理程序中放置一个断点,禁用“Just My Code”,然后查看调用堆栈。 – SLaks 2010-06-03 15:48:13
另外,请确保您没有添加处理程序两次。右键单击'dgvGuestInfo_SelectionChanged'并单击查找所有引用。 – SLaks 2010-06-03 15:49:22