我有一个在特定事件中弹出的表单。它从数组中提取按钮并将标签值设置为特定值。因此,如果您要按下或单击此按钮,该函数应返回标签值。
我怎样才能做到这一点?我如何知道点击了哪个按钮?
此时代码返回 DialogResult,但我想从函数返回 Tag 值。我该如何修改我的代码才能做到这一点?
public static DialogResult SelectBox(string title, string[] btnArray, string[] btnValueArray)
{
Form form = new Form();
Button[] buttonArray;
buttonArray = new Button[5];
form.Text = title;
for (int i = 0; i < btnArray.Length; i++)
{
buttonArray[i] = new Button();
buttonArray[i].Text = btnArray[i];
buttonArray[i].Tag = new int();
buttonArray[i].Tag = btnValueArray[i];
buttonArray[i].TabStop = false;
buttonArray[i].Location = new System.Drawing.Point(0, i * 40);
buttonArray[i].Size = new System.Drawing.Size(240, 40);
}
form.ClientSize = new Size(240, 268);
form.Controls.AddRange(new Control[] { buttonArray[0], buttonArray[1], buttonArray[2] });
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.StartPosition = FormStartPosition.CenterScreen;
form.MinimizeBox = false;
form.MaximizeBox = false;
DialogResult dialogResult = form.ShowDialog();
return dialogResult;
}
添加私有变量,格式为:
private object SelectedTag;
添加按钮单击处理程序:
private void Button_Click(object sender, EventArgs e) {
SelectedTag = ((Button)sender).Tag;
}
将处理程序分配给您创建的每个按钮:
..
buttonArray[i].OnClick += form.Button_Click;
..
然后在静态函数中,只需返回form.SelectedTag
而不是对话结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)