我需要在线程末尾设置按钮焦点。
Button.Focus()方法似乎不起作用。

例如:

Button1_Click(object sender, EventArgs e)
{
   Thread myThread = new Thread(theThread);
   myThread.Start();
}

theThread()
{
  ...
  Button2.Focus(); // does not seem to focus the button
}


但是,如果我将Button2.Focus()放在Button1_Click中,它将聚焦,但是对于我的项目,我无法做到这一点。

最佳答案

对于此类问题的通用解决方案,请查看SyncronizationContext类。但是,对于Windows窗体,可以使用Invoke方法,而在WPF中,可以使用Dispatcher.Invoke

//WinForms:
Invoke(delegate{ Button2.Focus(); });

关于c# - 如何在C#中的线程中使按钮焦点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/821137/

10-13 00:17