0

我需要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();
4

1 回答 1

1

不要调用事件本身。这是糟糕的代码。把创建一个自己受保护的 void updateMyList() 方法。

    internal void updateMyList()
    {
         noteslist.Items.Clear();
         idlist.Items.Clear();
         setnotes();
    }

然后从您的事件中调用更新方法。

    private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
    {
        updateMyList();
    }

然后只需从您的表单中调用更新方法:

       frmnotes notes = new frmnotes();
       notes.updateMyList();
       this.Close();

顺便说一句:将 Click 事件的修饰符(即 refreshToolStripMenuItem_Click)设置为私有。你永远不应该从表单之外调用它们。查看 MVC 模式以获取更多信息。这真的很有帮助。

于 2012-12-10T11:52:31.963 回答