2013-12-20 36 views
0

我有与datagridview有趣的情况。获取自定义发件人

在_keydown处理程序是这样的代码:

rowindex = DataGridView1.CurrentRow.Index 
Dim cea As New DataGridViewCellEventArgs(4, rowindex) 
DataGridView1_CellClick("program", cea) 

有了这个,我“编程点击”到小区4当前行中得到我的逻辑程序流程。
但我也可以用鼠标点击单元格4,datagridview也会发生同样的情况。

问题是: 如何识别datagridview的_CellClick处理程序谁激活事件(通过鼠标或程序)?为此,我通过名称“程序”给发件人打电话。

我可以以某种方式获取_CellClick处理程序下的这个名称(发件人的名称),以及我无法将发件人转换为“程序”。或者我可以吗?

回答

1

第一:您不应该直接调用事件处理函数方法。而且这与提高事件的效果并不相同,因为其他事件处理程序没有执行。

这种做法是更好的方式

Private Sub DataGridView1_CellClick(sender as object, e as DataGridViewCellEventArgs) 
    ProcessCellClick(e.RowIndex, e.ColumnIndex, true) 
End Sub 

Private Sub Button1_Click(...) 
    rowindex = DataGridView1.CurrentRow.Index 
    ProcessCellClick(rowIndex, 4, false) 
End Sub 

Private Sub ProcessCellClick(rowIndex as Integer, columnIndex as integer, fromCellClickEvent as boolean) 
    ... 
End Sub 

这就是我会做。 无论如何,如果你只是想检查发件人,这将有所帮助。

​​
+0

嗯,在那个地方我很方便地调用处理程序作为函数。而且,如果我认为这样做可能会最简单和有用,只需涉及一个公共变量,该变量将在_CellClick中告诉“程序单击”到datagridview。 –