1

TextBox关闭通过调用打开的第二个表单后,如何将元素集中在主表单上ShowDialog()

我试图调用MainForm.TextBox.Focus()第二种形式的关闭和关闭事件,但这不会集中文本框。

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

谢谢。

4

4 回答 4

3

DialogResult在您的第二个表单中,通过进入属性使按钮(或另一个控件)返回 a 。当您希望关闭第二个表单时(即按下按钮后),使其返回特定的DialogResult. 在您的主要形式中,您可以这样做:

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

调用ShowDialog()将阻塞,直到它关闭,因此您可以简单地执行以下操作:

secondform.ShowDialog();
textbox.Focus()

但是,第一个示例适用于当您只想在按下某个按钮或在第二个表单上执行操作后使文本框具有焦点时。

于 2012-08-03T03:02:50.503 回答
3

ShowDialog 意味着,它是一个模态窗口,焦点不会回到主窗体,直到您关闭第二个窗体。您可以在打开第二个表单时使用的相同代码中重新设置焦点。

SecondFrm.ShowDialog();
Textbox.Focus();
于 2012-08-03T03:03:35.980 回答
0

ShowDialog() 只会在第二个窗体关闭时返回,因此您可以MyTextBox.Select()在调用后立即编写。

于 2012-08-03T03:01:17.380 回答
0
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();
于 2012-08-03T03:02:22.220 回答