2010-01-27 97 views
0

我有一個DataGridView,並想要鉤入CellEndEdit事件。我已經能夠成功掛鉤CellContentClick事件,但我遇到了CellEndEdit問題。DataGridView和CellEndEdit事件

我下面的代碼添加到我的Form1.cs文件:

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellCancelEventArgs e) 
     { 
      dataGridView1[0, 0].Value = "Changed"; 
     } 

與該代碼,沒事的時候,我做編輯細胞發生。除此之外,我還需要做什麼才能成功進入該活動?我看到CellContentClick

this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick); 

線在Form1.Designer.cs文件的代碼,但我試圖模仿這種爲CellEndEdit,並收到一個編譯錯誤

(無過載爲「dataGridView1_CellEndEdit」匹配代表 'System.Windows.Forms.DataGridViewCellEventHandler')

回答

2

你可以實現這個yourse如果。

在你的構造函數中,你可以有一個HookEvents()方法來連接這些事件。

或者,在表單設計器中,單擊gridview將其選中,轉到屬性窗口並單擊黃色的thunderbolt以查找事件列表。然後,向下滾動並找到CellEndEdit事件並雙擊它 - 這將爲您連接事件。

要連接起來自己,它可能看起來像:

class A : Form 
{ 
    public A() 
    { 
    Initialize(); 
    HookEvents(); 
    } 

    private void HookEvents() 
    { 
    dataGridView1.CellEndEdit += dataGridView1_CellEndEdit; 
    } 
} 
0

我很懷疑你的解決方案是可行的。

這不是你放置訂閱的地方,而是你如何去做。

Brandon,您聲明的是一個EventHandler,即負責執行您想要執行的事情的函數「dataGridView1_CellEndEdit」,但您未訂閱該事件。同樣在你的函數中傳遞錯誤的參數。

簡單的解決方法是或者從設計器窗口或通過代碼執行此訂閱:

寫入「dataGridView1.CellEndEdit + =」然後按下TAB布通兩次。這應該創建用於訂閱該事件的代碼和正確的委託來處理它。