Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从其他窗体激活工具栏单击事件_C#_.net_Toolstrip - Fatal编程技术网

C# 从其他窗体激活工具栏单击事件

C# 从其他窗体激活工具栏单击事件,c#,.net,toolstrip,C#,.net,Toolstrip,我需要从另一个表单向refreshToolStripMenuItem发送单击事件。这就是我所拥有的,因为某种原因它不起作用。请帮忙 菜单项单击: public void refreshToolStripMenuItem_Click(object sender, EventArgs e) { noteslist.Items.Clear(); idlist.Items.Clear(); setnotes(); } 用于发送事件的代码: frmnotes notes = ne

我需要从另一个表单向refreshToolStripMenuItem发送单击事件。这就是我所拥有的,因为某种原因它不起作用。请帮忙

菜单项单击:

public void refreshToolStripMenuItem_Click(object sender, EventArgs e)
{
    noteslist.Items.Clear();
    idlist.Items.Clear();
    setnotes();
}
用于发送事件的代码:

frmnotes notes = new frmnotes();
notes.refreshToolStripMenuItem_Click(this, e);
this.Close();

不要把事件本身称为事件。 这是坏代码。 将创建自己的受保护的void updateMyList()方法放入

然后从事件中调用update方法

    private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
    {
        updateMyList();
    }
然后只需从表单中调用update方法:

       frmnotes notes = new frmnotes();
       notes.updateMyList();
       this.Close();
顺便说一句:将单击事件的修饰符设置为private,即refreshToolStripMenuItem\u Click。 你永远不应该在表格外给他们打电话。
更多信息请查看MVC模式。这真的很有帮助。

只是说updatemylist由于其保护级别而无法访问,所以我将protected改为public,但当我运行它时,它不会运行updatemylist。假设您有两个表单,我想,这也是您的情况。表单1称为
MainForm
,表单2称为
frmnotes
。在frmnotes类中,您会发现:-
refreshToolStripMenuItem\u单击(…)
-
updateMyList()
在主窗体中,您必须执行以下操作:
frmnotes notes=new frmnotes();notes.updateMyList();这个。关闭()这必须起作用,否则代码本身就是错误的。我也不明白你为什么要用公共电话。也许你可以上传你的项目,这样我就可以看一看。试着把修改器设置为内部。
       frmnotes notes = new frmnotes();
       notes.updateMyList();
       this.Close();