特定のイベントでポップアップするフォームがあります。配列からボタンを作成し、Tag値を特定の値に設定します。したがって、このボタンを押すかクリックする場合、関数はタグ値を返します。押されたボタンから戻り値を取得する
どうすればいいですか?そして、どのボタンがクリックされたかをどのように知ることができますか? この時点でコードはDialogResultを返しますが、関数からタグ値を返したいとします。これを行うためにコードを変更するにはどうすればよいですか?
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;
}
8つ以上のボタンがある場合はどうなりますか? (DialogResult enumには8つの値があります) –
@Oscar:そうだとすれば、もう少し作業をする必要があります。まれに(ある場合は)フォームに8つ以上のボタンが含まれている必要があります。 –
Microsoft Outlookを開くだけで、ツール>オプションに移動してください(最初のタブでのみ表示されます) –