Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有办法在windows窗体应用程序中保持所有窗口的焦点?_C#_Winforms_Focus_Autofocus - Fatal编程技术网

C# 是否有办法在windows窗体应用程序中保持所有窗口的焦点?

C# 是否有办法在windows窗体应用程序中保持所有窗口的焦点?,c#,winforms,focus,autofocus,C#,Winforms,Focus,Autofocus,我有一个应用程序,有时需要用户一次打开两个表单。我有主“主页”窗体窗口,但也有计算器窗体窗口。它不是一个普通的计算器,所以我希望计算器留在一个应用程序中 填写主表格时,需要计算器计算出一些数据输入。唯一的问题是,当使用calculator.ShowDialog()时,主窗体会失去焦点。计算器在主窗口的右侧打开。因此,理想情况下,我希望单击哪个窗口,获得焦点。只需使用form.Show()而不是ShowDialog我认为您可以添加代码行calculator.Activate()聚焦于窗口的全部目的

我有一个应用程序,有时需要用户一次打开两个表单。我有主“主页”窗体窗口,但也有计算器窗体窗口。它不是一个普通的计算器,所以我希望计算器留在一个应用程序中


填写主表格时,需要计算器计算出一些数据输入。唯一的问题是,当使用
calculator.ShowDialog()
时,主窗体会失去焦点。计算器在主窗口的右侧打开。因此,理想情况下,我希望单击哪个窗口,获得焦点。

只需使用
form.Show()
而不是
ShowDialog

我认为您可以添加代码行
calculator.Activate()

聚焦于窗口的全部目的是,嗯。。。专注于它。如果你想把注意力集中在两个方面,那就达不到目的。如果你想简单地在这两个方面之间切换,你应该使用
Form.Show()
,在这里你不需要退出一个就可以使用另一个。另一个解决方案是让计算器成为主应用程序的一部分。老实说,我不知道Show()不会导致焦点丢失。它确实会导致焦点丢失,但与ShowDialog()不同,您可以在两者之间切换。