public int dialog()
{
Form prompt = new Form(); // creates form
//dimensions
prompt.Width = 300;
prompt.Height = 125;
prompt.Text = "Adding Rows"; // title
Label amountLabel = new Label() { Left = 75, Top = 0, Text = "Enter a number" }; // label for prompt
amountLabel.Font = new Font("Microsoft Sans Serif", 9.75F);
TextBox value = new TextBox() { Left = 50, Top = 25, Width = prompt.Width / 2 }; // text box for prompt
Button confirmation = new Button() { Text = "Ok", Left = prompt.Width / 2 - 50, Width = 50, Top = 50 }; // ok button
confirmation.Click += (sender, e) => { prompt.Close(); }; // if clicked it will close
prompt.AcceptButton = confirmation; // enter
// adding the controls
prompt.Controls.Add(confirmation);
prompt.Controls.Add(amountLabel);
prompt.Controls.Add(value);
prompt.ShowDialog();
int num;
Int32.TryParse(value.Text, out num);
return num;
}
这是我的提示在被称为
时的样子
我只是点击一个按钮来调用该方法。现在您注意到,未选中文本框。如何调用此方法,如果调用此方法,它将使文本框默认选中,而不必单击它或选项卡到它?
(我知道这是次要的,但每个细节看起来都会更好)
答案 0 :(得分:2)
你的意思是Focused
?像这样:
textBox1.Focus();
在显示对话框后编写此代码,它应该可以正常工作。
prompt.ShowDialog();
prompt.Controls.OfType<TextBox>().First().Focus();
如果不起作用,请在打开提示之前尝试设置ActiveControl
属性:
promt.ActiveControl = value;
prompt.ShowDialog();
答案 1 :(得分:2)
控件之间用于标签的顺序由属性TabIndex决定。此属性由添加控件的顺序自动确定(如果不手动更改)TabIndex = 0的控件将集中在窗体的开头(当然,如果控件可以聚焦)< / p>
尝试
prompt.Controls.Add(value);
prompt.Controls.Add(confirmation);
prompt.Controls.Add(amountLabel);
prompt.ShowDialog();