单键可以有多种方法吗?

时间:2017-11-04 20:40:23

标签: c#

我有这4个按钮。

truncateEmp truncateStocks truncateLogs truncateExpenses

如果我按下其中一个,将打开一个新表单,并将要求用户输入数据库中的密码。如果密码正确,则会截断表。

新表单有两个按钮,proceedcancel。当然,cancel会关闭表单,proceed会检查用户的通行证是否正确,然后执行此操作。

如果proceed可以截断其他表,是否可以?我只能截断Employees表,因为proceed_Click只有一个方法。

private void proceed_Click(object sender, EventArgs e)   //proceed
    {

        string pass = passField.Text;
        if (pass == "")
        {
            MessageBox.Show("Did you input something? I doubt it.");
            return;
        }

        bool r = validate_login(pass);
        if (r)
        {
            db_connection();

            MySqlCommand cmd = new MySqlCommand();
            cmd.CommandText = "TRUNCATE TABLE Employees";
            cmd.Connection = connect;

            cmd.ExecuteNonQuery();
            MessageBox.Show("Success!", "TRUNCATE", MessageBoxButtons.OK, MessageBoxIcon.Information);

            emp.ShowDataToGrid();
            logs.Log_TruncateEmp();
            this.Close();
            passField.Clear();

            connect.Close();
        }
        else
        {
            MessageBox.Show("Wrong password!", "TRUNCATE", MessageBoxButtons.OK, MessageBoxIcon.Error);
            passField.Clear();
        }
    }

    private void cancel_Click(object sender, EventArgs e) //cancel
    {
        this.Close();
    }   
}

谢谢!

1 个答案:

答案 0 :(得分:0)

Button.Clickevent,是的,此类事件可能会附加多种方法。

方法的工作方式基本上是在事件触发时可以执行多个动作。因此,如果您为proceed.Click事件分配了3个方法,那么所有3个方法都将执行。

以下是一个示例,显示了如何将2个点击事件附加到单个按钮:

public void Form_Load(object sender, EventArgs e)
{
    proceed.Click += MyClickEvent1;
    proceed.Click += MyClickEvent2;
}

public void MyClickEvent1(object sender, EventArgs e)
{
    // Do Stuff ...
}
public void MyClickEvent2(object sender, EventArgs e)
{
    // Do More Stuff ...
}