ToolStripMenuItem单击事件应返回一个类

本文关键字:一个 单击 事件 返回 ToolStripMenuItem | 更新日期: 2023-09-27 18:25:04

我有一个DataGridContextMenuStrip。当我在一行中单击SelectMenuStrip时,我希望上下文菜单的ClickEventdatabean类中获取该行中的所有数据,并返回该databean类,这样我就可以在另一个类中填充数据-一切都很好,我将事件定义为以下

private CustomerDataBean toolStripMenuItem1_Click(object sender, EventArgs e)
{
    CustomerDataBean custdatabean = null;
    int rowno = tblcustomerdataview.CurrentCellAddress.Y;
    custdatabean.Customerpk = int.Parse(tblcustomerdataview.Rows[rowno].Cells[0].Value.ToString());
    custdatabean.Contactno = tblcustomerdataview.Rows[rowno].Cells[6].Value.ToString();
        custdatabean.Emailid = tblcustomerdataview.Rows[rowno].Cells[7].Value.ToString();
    custdatabean.Other = tblcustomerdataview.Rows[rowno].Cells[8].Value.ToString();
    return custdatabean;
}

但在designer.cs中,我收到了一个行错误:

this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click);

错误为:

错误1:
"WindowsFormsApplication3.CustomerDataBean WindowsFormsAapplications3.CustomerSearch.toolStripMenuItem1_Click(object,System.EventArgs)"具有错误的返回类型D:''WindowsFormsApplication3''WindowsFformsApplication3''Merchandision''CustomerSearch.Designer.cs 83 46 NFTRANS

我哪里做错了什么?让我解释一下情况我有一个jobcodeform,用户应该在combox中输入客户代码,如果他忘记了客户代码,他可以使用按钮转到另一个名为customersearch的表单,其中有一个带有上下文菜单条的数据网格表,当单击该表时,它会获取客户表中所选行的全部详细信息,并将其返回到第一个jobcodeform

ToolStripMenuItem单击事件应返回一个类

您的代码没有多大意义。点击事件不会返回任何内容(除了void),它们实际上只是运行一个过程。

您的快速解决方案是匹配处理程序的签名:

private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
  // do something, don't return anything
}

您需要定义的是您试图对CustomerDataBean对象执行什么操作。如果你只是想把它添加到列表中,那么就把它添加在列表中:

private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
  CustomerDataBean custdatabean = new CustomerDataBean();
  // set properties    
  myBeans.Add(custdatabean);
}

您当前拥有的代码甚至没有创建CustomerDataBean对象。它是null,然后您正试图更新一个null对象。这行不通。

问问自己,点击事件应该将对象返回到哪里
什么代码将处理该bean?

其他人已经解释了您的点击事件的问题。

这里有一种可能的方法:

让您的点击事件调用一个单独的方法来处理bean。也许是这样的:

private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
    CustomerDataBean custdatabean = null;
    int rowno = tblcustomerdataview.CurrentCellAddress.Y;
    custdatabean.Customerpk = int.Parse(tblcustomerdataview.Rows[rowno].Cells[0].Value.ToString());
    custdatabean.Contactno = tblcustomerdataview.Rows[rowno].Cells[6].Value.ToString();
        custdatabean.Emailid = tblcustomerdataview.Rows[rowno].Cells[7].Value.ToString();
    custdatabean.Other = tblcustomerdataview.Rows[rowno].Cells[8].Value.ToString();
    processBean(custdatabean);
}
private void processBean(CustomerDataBean bean)
{
    //Code to process the bean here.
}

ToolStripMenuItem点击事件处理程序需要返回void。