我用两种形式创建一个简单的应用程序。从我的主表单我可以点击一个按钮开始我的第二个表单,这就像我不喜欢的那样。但是当我关闭第二个表单时,我的主表单没有被激活,我必须单击表单中的某个位置才能点击任何其他按钮。
现在有人如何解决这个问题?
答案 0 :(得分:0)
您可以在关闭子表单后尝试主表单上的Form.Activate Method 激活表单并将其设置为焦点。
答案 1 :(得分:0)
我是这样做的。 如果您使用showModal打开子表单,可以尝试:
private void btnOpenWindows_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Caller = this;
f.ShowDialog();
this.textBox1.Focus();
}
当执行f.ShowDialog();
控件传递给Form2并且调用者被禁用时。(*添加传递它作为参数可以对Form父进行操作。
当您关闭Form2执行从this.textBox1.Focus();
恢复时,表单父亲处于活动状态。
*在添加时,您希望通过Form2在Form1中操作,您可以在Form2中创建Form1的属性
public partial class Form2 : Form
{
public Form1 Caller = null;
public Form2()
{
InitializeComponent();
}
private void btnTest_Click(object sender, EventArgs e)
{
//Set textBox1 modiefer public
Caller.textBox1.Text = "Hello Word";
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
//TODO
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
//TODO
}
}