此代碼會兩次觸發選擇更改事件。我怎樣才能防止它? 目前我正在使用標誌或集中屬性來防止這種情況。但實際的方式是什麼?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