[英]Form.invoke not focusing on control
我之前问过这个问题的不同版本。 现在我有另一个问题:
我通过单击“Txt”位置解决了它,但它不是正式的解决方案。 我在这里想念什么? 我的代码如下;
“FormA”上的线程在事件下方触发;
private void OnMessage()
{
this.InvokeIfRequired(() =>
{
var loginForm = new LoginForm();
loginForm.ShowDialog();
});
}
“FormB”有以下方法
private void LoginForm_Shown(object sender, EventArgs e)
{
TxtUsername.Focus();
}
“InvokeIfRequired”扩展方法如下;
public static void InvokeIfRequired(this Control control, MethodInvoker action)
{
if (control.InvokeRequired)
{
control.Invoke(action);
}
else
{
action();
}
}
我通过在 form_shown 事件上添加 Thread.Sleep 找到了解决方案。 睡眠后,我激活表单并设置 Form.ActiveControl 属性。 完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.