获得从pressed按钮返回值 [英] Get return value from pressed button
问题描述
我有弹出在特定事件的形式。它制定按钮从一个数组并设置标记值设置为特定值。所以,如果你是preSS或单击该按钮的功能应该返回变量值。
我怎样才能做到这一点?而且我怎么知道哪个按钮被点击? 这时的code返回的DialogResult,但我想从函数返回的标记值。应如何修改我的code,以便它可以做到这一点?
公共静态的DialogResult选择框(字符串名称,字符串[] btnArray,字符串[] btnValueArray)
{
Form表单=新表();
按钮[] buttonArray;
buttonArray =新按钮[5];
form.Text =称号;
的for(int i = 0; I< btnArray.Length;我++)
{
buttonArray [我] =新的Button();
buttonArray [I]。文= btnArray [I]
buttonArray [I] .TAG =新INT();
buttonArray [I] .TAG = btnValueArray [I]
buttonArray [I] .TabStop = FALSE;
buttonArray [I] .Location =新System.Drawing.Point(0,I * 40);
buttonArray [I] .Size =新System.Drawing.Size(240,40);
}
form.ClientSize =新的大小(240,268);
form.Controls.AddRange(新控制[] {buttonArray [0],buttonArray [1],buttonArray [2]});
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.StartPosition = FormStartPosition.CenterScreen;
form.MinimizeBox = FALSE;
form.MaximizeBox = FALSE;
的DialogResult的DialogResult = form.ShowDialog();
返回的DialogResult;
}
添加一个私有变量的形式:
私有对象SelectedTag;
添加一个按钮单击处理程序:
私人无效Button_Click(对象发件人,EventArgs的){
SelectedTag =((按钮)发送方).TAG;
}
指定的处理程序创建的每个按钮:
..
buttonArray [I] .OnClick + = form.Button_Click;
..
然后在你的静态功能,只需返回 form.SelectedTag
代替的DialogResult。
I have a form that pops up at a specific event. It draws up buttons from an array and sets the Tag value to a specific value. So if you are to press or click this button the function should return the Tag value.
How can I do this? And how do I know which button was clicked? At this moment the code returns DialogResult, but I want to return the Tag value from the function. How shall I modify my code so that it can do this?
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;
}
Add a private variable in the form:
private object SelectedTag;
Add a button click handler:
private void Button_Click(object sender, EventArgs e) {
SelectedTag = ((Button)sender).Tag;
}
Assign the handler to each button you create:
..
buttonArray[i].OnClick += form.Button_Click;
..
Then in your static function, simply return form.SelectedTag
instead of the dialogresult.
这篇关于获得从pressed按钮返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!