使用快捷键

|获得我的ContextMenuStrip的SourceControl。 我将单个“ 0”附加到两个控件(“ 1”)上。 在
ToolStripMenuItem
click事件中,我设法使用以下代码获取原始呼叫者(
DataGridView
):
var menu = (ToolStripDropDownItem)sender;
var strip = (ContextMenuStrip)menu.Owner;
var dgv = (DataGridView)strip.SourceControl;  
当我单击我的
ToolStripMenuItem
时,效果很好。 但是当我使用链接到
ToolStripMenuItem
的sortcut键时,strip.
SourceControl
返回null。 有人知道为什么吗?     
已邀请:
SourceControl属性显示导致ContextMenuStrip打开的控件。由于在这种情况下ContextMenuStrip不显示,所以没有用于打开它的控件,因此该属性为null。 在打开事件的上下文中更好地使用此属性。请参见ContextMenuStrip.SourceControl。 更新:一种确定哪个DataGridView是ToolStripMenuItem单击的预期接收者的方法是查看哪个具有焦点:
var dgv = this.ActiveControl as DataGridView;
if ( dgv != null) // make sure to check for null before trying to use this var
    //...
    

要回复问题请先登录注册