2013-11-22 71 views
1

C#Winforms更改所選行的DataGridView不會觸發單元格單擊事件

更改所選內容時,它不會觸發單擊事件。

private void ChangeSelection(rowIndex){ 
    dataGridView.Rows[rowIndex].Selected = true;  
} 

我可以稱之爲像調用一個正常的功能如下。

dataGridView_Click(new object(), new System.EventArgs()); 

Designer.cs: 
this.dataGridView.Click += new System.EventHandler(dataGridView_Click); 

重要提示:此處的單擊事件與Native C++類處於接收狀態。

Sink Windows Forms Events from Native C++ Classes

我的問題是,當我打電話像一個正常的功能,它沒有擊中在本機應用程序。 我需要以編程方式觸發此點擊,就像用鼠標點擊一樣。

我該怎麼做?

+0

請確認:你想單擊一個單元格,一行或datagridview本身? –

+0

我想要連續點擊!! – AKN

+0

但看起來像datagridview沒有任何RowClick事件,我們只有CellClick,CellContentClick –

回答

1

因爲這種飼養方法保護您可以通過OnClick嘗試使用Reflection提高Click事件:

typeof(Control).GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance) 
       .Invoke(dataGridView1, new object[]{EventArgs.Empty}); 

BindingFlags有選擇全類型名System.Reflection.BindingFlags

0

您也可以撥打細胞click事件更改事件

private void dgv_SelectionChanged(object sender, EventArgs e){ 
    DataGridView dv = (DataGridView)sender; 
    dgv_CellClick(dv, new DataGridViewCellEventArgs(dv.CurrentCell.ColumnIndex, dv.CurrentCell.RowIndex));}   

私人無效dgv_CellClick(對象發件人,DataGridViewCellEventArgs e){//你的東西聽到了! }

相關問題