专注主窗体上的文本框关闭第二种形式后(Focus textbox on main form afte

2019-10-17 03:00发布

我如何集中一个TextBox主窗体元素结束其是通过调用打开第二个表格后ShowDialog()

我曾试着打电话给MainForm.TextBox.Focus()在关闭和第二种形式的封闭情况,但这不会集中在文本框。

我使用System.Windows.Forms上紧凑的框架。

谢谢。

Answer 1:

从你的第二个形式,使一个按钮(或其他控件)返回DialogResult通过进入属性。 当你想第二种形式关闭(你按下一个按钮后,IE)使它返回一个特定DialogResult 。 在主窗体,你可以这样做:

if(secondform.ShowDialog() == DialogResult.OK)
{
    textBox.Focus();
    ...
}

调用ShowDialog()将阻塞,直到它被关闭,所以你可以简单地做:

secondform.ShowDialog();
textbox.Focus()

然而,第一个例子是当你只想让文本框具有焦点按下某个按钮或做第二个窗体上的动作之后。



Answer 2:

ShowDialog的意思,这是一个模态窗口,直到您关闭第二种形式的焦点将不会再回到主要形式。 您可以设置集中回您用于打开第二种形式相同的代码。

SecondFrm.ShowDialog();
Textbox.Focus();


Answer 3:

当第二种形式是封闭的ShowDialog()将只返回,所以你可以写MyTextBox.Select()的调用之后。



Answer 4:

SomeForm form1 = new SomeForm();
form1.ShowDialog();

在这里,我们显示了新的形式。 当您关闭它,你将执行后的方法,所以加

yourTextbox.Focus();

所以是:

SomeForm form1 = new SomeForm();
form1.ShowDialog(); // do what you want in your form, then close it
yourTextbox.Focus();


文章来源: Focus textbox on main form after closing a second form