如何使方法等待按钮被单击创建的表单(不用停止应用程序本身)并从中获取值?与MessageBox.Show()
的工作方式类似的东西。
Form oForm = new Form();
List<TextBox> ListOfTB = new List<TextBox>();
oForm.Height = 20;
foreach (FontPair vFont in ListOfFonts)
{
Label oLabel = new Label();
oLabel.Text = vFont.Western;
oLabel.Top = oForm.Height - 10;
oLabel.Left = 10;
TextBox oText = new TextBox();
oText.Top = oForm.Height - 20;
oText.Left = 10;
oForm.Controls.Add(oLabel);
oForm.Controls.Add(oText);
ListOfTB.Add(oText);
oForm.Height += 20;
}
Button oButton = new Button();
oButton.Top = oForm.Height - 20;
oButton.Left = 10;
oForm.Height += 10;
oForm.Show();
//Here I wish to wait for oButton to be clicked
答案 0 :(得分:2)
我认为您正在寻找oForm.ShowDialog()
而不是.Show()
。
ShowDialog
将以模态方式显示对话框,与MessageBox.Show()
相同。
如果您想要按钮关闭表单,可以使用DialogResult
属性:
oButton.DialogResult = DialogResult.OK;
或者,如果您确实想使用&#39; .Show()`,您可以使用事件处理程序来处理按钮单击并关闭表单:
oButton.Click += (s, e) => { oForm.Close(); };