2016-03-15 133 views
0

我在我的winform上有一个DataGridView,我显示了5列和几行,我想添加一个功能,如果我右键单击任何行向我显示一个菜单以查看有关该记录的更多详细信息。 但我得到一个错误,当我写这e.ButtonSystem.EventArgs不包含按钮的定义 - C#

System.EventArgs不包含按键的定义,并没有扩展方法按钮接受类型System.EventArgs的第一个参数可以找到(是否缺少任何指令或程序集引用?)

enter image description here

+1

按钮位于MouseEventArgs中。 请参阅:http://stackoverflow.com/questions/19448346/how-to-get-a-right-click-mouse-event-changing-eventargs-to-mouseeventargs-cause –

回答

2

MouseClick事件DataGridView实际上提供了一个MouseEventArgs参数。您只用EventArgs宣布您的datagridview1_MouseClick方法。

,要

protected void datagridview1_MouseClick(object sender, MouseEventArgs e) 
{ 
    if (e.Button == ... 

,它应该工作变化(如果你使用CellMouseClick代替MouseClick,使用DataGridViewCellMouseEventArgs代替MouseEventArgs)。


作为一个方面说明:你没有得到,当你添加“错误地”声明的处理像datagridview1.MouseClick += datagridview1_MouseClick,因为MouseEventArgsEventArgs派生,所以编译器具有与分配对象没有问题的编译错误。当您尝试通过e访问MouseEventArgs实例的属性时出现问题,e被声明为EventArgs,因为EventArgs不知道MouseEventArgs衍生物的属性。


P.S:请发表您的代码作为文字到您的下一个问题。对于我们来说,阅读或再利用来重现错误比图像更好。在该图像中,我看不到您使用的是MouseClick还是CellMouseClick事件

+0

它是'MouseClick',但您的答案为我工作(Y)。感谢您的解释。 –

相关问题