C# 从其他窗体激活工具栏单击事件
我需要从另一个表单向refreshToolStripMenuItem发送单击事件。这就是我所拥有的,因为某种原因它不起作用。请帮忙 菜单项单击: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
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();