Art*_*gas 2 .net c# compact-framework
我有一个弹出特定事件的表单.它从数组中绘制按钮并将Tag值设置为特定值.因此,如果您要按或单击此按钮,该函数应返回Tag值.
我怎样才能做到这一点?我怎么知道点击了哪个按钮?此时代码返回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;
}
Run Code Online (Sandbox Code Playgroud)
在表单中添加一个私有变量:
private object SelectedTag;
Run Code Online (Sandbox Code Playgroud)
添加按钮单击处理程序:
private void Button_Click(object sender, EventArgs e) {
SelectedTag = ((Button)sender).Tag;
}
Run Code Online (Sandbox Code Playgroud)
将处理程序分配给您创建的每个按钮:
..
buttonArray[i].OnClick += form.Button_Click;
..
Run Code Online (Sandbox Code Playgroud)
然后在静态函数中,只返回form.SelectedTag而不是对话结果.
| 归档时间: |
|
| 查看次数: |
13591 次 |
| 最近记录: |