C# - 从私有虚空重复动作

时间:2016-05-02 17:41:19

标签: c#

我是c#的真正初学者和一切。但是当我遇到这个问题时,我正试图制作我的第一个程序。我已经完成了" private void closeButton_Click(object sender,EventArgs e)" Wich说,当点击自定义关闭按钮时,它将显示确认消息。

但是我想要名为'退出'的菜单条上的其中一个项目做同样的事情" private void closeButton_Click"。

这是一个简短的代码,我可以写一个新的消息框,除了它之外的所有内容都必须是一种简单重复代码的方法。

这是代码

private void closeButton_Click(object sender, EventArgs e)
        {
            DialogResult dialog = MessageBox.Show("Do you really want to exit?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (dialog == DialogResult.Yes)
            {
                Application.Exit();
            }
            else if (dialog == DialogResult.No)
            {
                //Close 'dialog'
            }
        }


private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            closeButton_Click = true;
        }

2 个答案:

答案 0 :(得分:2)

您使用closeButton_Click作为布尔变量(将其设置为true),但它是一种方法。

您可以调用该方法。

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
    closeButton_Click(sender, e);
}

答案 1 :(得分:2)

这样做的方式是.NET通过事件处理程序委托。在不同的按钮的情况下,它可能在他们的“点击”事件。设置如下:

protected void CloseHandler(object sender, EventArgs e){ /*code goes here*/ }

//two buttons, referencing the same handler.
firstButton.Click += CloseHandler;
secondButton.Click += CloseHandler;