可以单击多个控件之一,但所有控件都具有相同的代码
one of several controls may be clicked but all have the same code
我正在用 C# 做一个 windows 表单。我有一个 groupPanel1,里面有 7 个文本框。每当我单击组面板中的任何文本框时,都会启用面板外的按钮保存 (btnSave)。
有没有办法拥有一个数组或创建一个自定义事件,我单击任何文本框或面板将导致启用保存按钮?
或任何有帮助的东西。
private void groupPanel1_Click(object sender, EventArgs e)
{
btnSave.Enabled = true;
}
您可以将每个文本框的点击事件设置为相同的方法(启用按钮)。
您可能正在寻找这样的东西:Handling a Click for all controls on a Form?
对于您的情况,您不需要递归调用,因为所有文本框都包含在您的 groupPanel 中,您只需将处理程序分配给文本框而不是所有可用控件。这意味着 form_load 事件中的以下(未经测试的)代码应该可以解决问题。
foreach (Textbox t in groupPanel1.Controls.OfType<TextBox>())
{
t.MouseClick += new MouseEventHandler(
delegate(object sender, MouseEventArgs e)
{
btnSave.Enabled = true;
};
}
我正在用 C# 做一个 windows 表单。我有一个 groupPanel1,里面有 7 个文本框。每当我单击组面板中的任何文本框时,都会启用面板外的按钮保存 (btnSave)。 有没有办法拥有一个数组或创建一个自定义事件,我单击任何文本框或面板将导致启用保存按钮? 或任何有帮助的东西。
private void groupPanel1_Click(object sender, EventArgs e)
{
btnSave.Enabled = true;
}
您可以将每个文本框的点击事件设置为相同的方法(启用按钮)。
您可能正在寻找这样的东西:Handling a Click for all controls on a Form?
对于您的情况,您不需要递归调用,因为所有文本框都包含在您的 groupPanel 中,您只需将处理程序分配给文本框而不是所有可用控件。这意味着 form_load 事件中的以下(未经测试的)代码应该可以解决问题。
foreach (Textbox t in groupPanel1.Controls.OfType<TextBox>())
{
t.MouseClick += new MouseEventHandler(
delegate(object sender, MouseEventArgs e)
{
btnSave.Enabled = true;
};
}