我有这4个按钮。
truncateEmp
truncateStocks
truncateLogs
truncateExpenses
如果我按下其中一个,将打开一个新表单,并将要求用户输入数据库中的密码。如果密码正确,则会截断表。
新表单有两个按钮,proceed
和cancel
。当然,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();
}
}
谢谢!
答案 0 :(得分:0)
Button.Click
是event,是的,此类事件可能会附加多种方法。
方法的工作方式基本上是在事件触发时可以执行多个动作。因此,如果您为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 ...
}