每次數據加載時都會調用datagridview rowsremoved事件。在某種程度上,每次數據加載時,現有的行都被刪除也是有意義的。所以技術上這個事件應該被調用。datagridview rowsremoved事件每次加載數據時都會調用
但我如何區分實際的刪除按鈕被按下。我不認爲應該使用關鍵事件,那不是一個乾淨的方法。
任何幫助將不勝感激。
每次數據加載時都會調用datagridview rowsremoved事件。在某種程度上,每次數據加載時,現有的行都被刪除也是有意義的。所以技術上這個事件應該被調用。datagridview rowsremoved事件每次加載數據時都會調用
但我如何區分實際的刪除按鈕被按下。我不認爲應該使用關鍵事件,那不是一個乾淨的方法。
任何幫助將不勝感激。
您可以在加載網格之前刪除事件處理程序,然後重新添加它嗎?
你可以有一個私人布爾變量來知道你什麼時候加載,什麼時候不加載。
private bool IsLoading { get; set; }
在窗體Load事件,您設置的變量
private void MyForm_Load(object sender, EventArgs e)
{
this.IsLoading = true;
// do stuff
this.IsLoading = false;
}
private void DataGridView_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
if (this.IsLoading)
{
return;
}
//do stuff
}
沒有幫助。由於僅將DataSource設置爲DataGridView,因此不會調用RowsRemoved(顯示在callstack中)。它也在第一次顯示對象時從'System.Windows.Forms.dll!System.Windows.Forms.Control.SetVisibleCore(bool value = true)調用。 – 2013-07-05 06:56:49
您可以使用UserDeletedRow事件來代替。
幫我:
If questionList.SelectedRows.Count > 0 Then
End If
參見:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.userdeletingrow.aspx
我一直在嘗試這樣做,但事件我後來重新添加呢? – 2010-07-01 11:49:52
您可以用加載網格的任何方法重新添加RowsRemoved事件。像 RemoveHandler grid.RowsRemoved,AddressOf someFunction; LoadData(); AddHandler grid.RowsRemoved,AddressOf someFunction; (對不起,我不知道如何在評論框中編碼格式) – joelt 2010-07-02 15:11:32