C# ToolstripMenuItem单击是否引发错误?

C# ToolstripMenuItem单击是否引发错误?,c#,toolstrip,object-reference,toolstripdropdown,C#,Toolstrip,Object Reference,Toolstripdropdown,最近在我的C#应用程序中添加了Toolstrip,当单击调用该函数的菜单项时出错,但当从Windowsform按钮调用该函数时,它工作正常。 以下是我的职责: private void ShowAddDocument(object sender, EventArgs e) { foreach (var rr in this.gridEX1.GetDataRows()) { if (rr.Cells["S

最近在我的C#应用程序中添加了Toolstrip,当单击调用该函数的菜单项时出错,但当从Windowsform按钮调用该函数时,它工作正常。 以下是我的职责:

 private void ShowAddDocument(object sender, EventArgs e)
    {

            foreach (var rr in this.gridEX1.GetDataRows())
            {

                if (rr.Cells["Select"].Value != null)
                {
                    if (rr.Cells["DocumentNumber"].Value.ToString() != "")
                    {

                        rr.BeginEdit();
                        rr.Cells["Select"].Value = null;
                        rr.EndEdit();
                    }
                    else
                    {
                        this.gridEX1.Tag = "SELECTED";


                    }
                }

            }
我使用以下行连接函数和Toolstrip菜单项单击事件:

this.userControl11.IssueDocMenuItem.Click += new System.EventHandler(ShowAddDocument);
但当单击Toolstrip菜单项时,会引发错误: “对象引用未设置为对象的实例”。 但奇怪的是,当我使用Windowsform按钮并通过以下代码调用该函数时:

    private void button1_Click(object sender, EventArgs e)
    {
        ShowAddDocument(sender, e);
    }

这是我的代码没有任何错误

我已经在gridex Select列中找到了名为ActAsSelector的行为,并将其设置为True,然后我的问题就解决了。开心吧

给哪一行?我只能根据您的代码进行假设。要么是
gridEX
为空,
GetDataRows
返回null making
rr
null,要么是其中一个单元格通过
rr
上的索引检索为空。要么是
rr[“Select”]
rr[“DocumentNumber”]
也请参见:不,我的网格不为空,当单击按钮1时,它可以正常工作,因为一个已经开发了很多年的运行库突然在这样简单的代码中随机抛出空值异常?不要听起来粗鲁或其他什么,但你应该总是假设你自己的代码是错误的。您是否尝试使用调试器检查所有值,不仅检查网格,还检查方法/行索引中返回的值。我已在gridex Select列中找到名为ActAsselElector的行为,并将其设置为True,然后我的问题得到解决。现在快乐。