C#Winforms
更改选择时,不会触发点击事件。
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);
这里重要的一点是,这个click事件与Native C ++ Classes在接收器中。
Sink Windows Forms Events from Native C++ Classes
我的问题是,当我像普通函数一样调用它时,它不会被本机应用程序命中。 我需要以编程方式触发此单击,就像用户用鼠标单击它一样。
我该怎么做?
答案 0 :(得分:1)
您可以尝试使用Reflection
通过Click
举起OnClick
活动,因为此提升方法受到保护:
typeof(Control).GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance)
.Invoke(dataGridView1, new object[]{EventArgs.Empty});
BindingFlags
的完整类型名称为System.Reflection.BindingFlags
答案 1 :(得分:0)
您还可以为选择更改的事件调用单元格点击事件
private void dgv_SelectionChanged(object sender, EventArgs e){
DataGridView dv = (DataGridView)sender;
dgv_CellClick(dv, new DataGridViewCellEventArgs(dv.CurrentCell.ColumnIndex, dv.CurrentCell.RowIndex));}
private void dgv_CellClick(object sender,DataGridViewCellEventArgs e){//你的东西听到了! }