繁体   English   中英

System.EventArgs不包含Button的定义-C#

[英]System.EventArgs Doesn't contain the definition of Button - C#

我在winform上有一个DataGridView ,并在其中显示5列和几行,我想添加一个功能,如果我右键单击任何行,它将显示一个菜单,以查看有关该记录的更多详细信息。 但是我在写e.Button时遇到错误

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

在此处输入图片说明

实际上, DataGridViewMouseClick事件提供了一个MouseEventArgs参数。 您仅使用EventArgs声明了datagridview1_MouseClick方法。

更改为

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

它应该工作(如果你使用的CellMouseClick代替MouseClick ,使用DataGridViewCellMouseEventArgs而不是MouseEventArgs )。


附带说明:添加“错误”声明的处理程序(例如datagridview1.MouseClick += datagridview1_MouseClick ,不会出现编译错误,因为MouseEventArgs派生自EventArgs ,因此编译器对该分配没有问题。 当您将e声明为EventArgs时,尝试通过e访问MouseEventArgs实例的属性时,就会出现问题,因为EventArgs不知道MouseEventArgs派生的属性。


PS:请将您的代码作为文本发布到下一个问题。 与图像相比,对我们而言,读取或重复使用该错误再现更好。 在这个形象,我不能看到,如果你使用的MouseClickCellMouseClick事件

您的委托处理程序方法应使用DataGridViewCellMouseEventArgs

https://msdn.microsoft.com/zh-CN/library/system.windows.forms.datagridview.cellmouseclick(v=vs.110).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM