Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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# Mono Gtk窗口需要焦点进行输入_C#_Mono_Gtk# - Fatal编程技术网

C# Mono Gtk窗口需要焦点进行输入

C# Mono Gtk窗口需要焦点进行输入,c#,mono,gtk#,C#,Mono,Gtk#,我还没有找到包含此功能的示例,或者我在文档中遗漏了它,或者它不在那里 我有一个全屏GUI程序,当用户需要输入数字时,必须在屏幕中央出现一个计算器窗口弹出窗口。用户键入一个数字并单击enter,或单击cancel继续通过窗口 问题是,单击计算器后面的全屏窗口会将该窗口带到前面,并在未完成预期输入的情况下隐藏计算器,这可能会让用户感到恼火 我想我正在尝试创建的功能就是大多数文本编辑器/IDE在按下“打开文件”按钮时发生的情况。如果您想查看代码,请告诉我,目前它只是两个独立的窗口类。窗口对象的Pres

我还没有找到包含此功能的示例,或者我在文档中遗漏了它,或者它不在那里

我有一个全屏GUI程序,当用户需要输入数字时,必须在屏幕中央出现一个计算器窗口弹出窗口。用户键入一个数字并单击enter,或单击cancel继续通过窗口

问题是,单击计算器后面的全屏窗口会将该窗口带到前面,并在未完成预期输入的情况下隐藏计算器,这可能会让用户感到恼火

我想我正在尝试创建的功能就是大多数文本编辑器/IDE在按下“打开文件”按钮时发生的情况。如果您想查看代码,请告诉我,目前它只是两个独立的窗口类。

窗口对象的Present()函数将该特定窗口置于最前面。因此,在希望保持在前面的窗口上添加FocusOutEvent侦听器,如:

windowObj.FocusOutEvent += (obj, args) => windowObj.Present();
会有用的

另一种方法(也是更好的方法)是将窗口的模态属性设置为true

如果您无意中发现了这一点,并且正在寻找一个弹出窗口,该窗口将暂停调用它以等待输入,请参见以下问题:

您基本上使用Dialog类而不是Window,并将元素添加到对话框的ActionArea中

希望这有帮助。

Window对象的Present()函数将该特定窗口带到前面。因此,在希望保持在前面的窗口上添加FocusOutEvent侦听器,如:

windowObj.FocusOutEvent += (obj, args) => windowObj.Present();
会有用的

另一种方法(也是更好的方法)是将窗口的模态属性设置为true

如果您无意中发现了这一点,并且正在寻找一个弹出窗口,该窗口将暂停调用它以等待输入,请参见以下问题:

您基本上使用Dialog类而不是Window,并将元素添加到对话框的ActionArea中


希望这能有所帮助。

感谢编辑Amith003,但我似乎无意中找到了自己问题的答案。我不能再回答我自己的问题6个小时,所以我现在就把它贴在这里。calculator.calc.FocusOutEvent+=(obj,args)=>calculator.calc.Present();其中calculator是我的自定义类,calc是公共窗口属性。当焦点离开计算器窗口时,它会触发FocusOutEvent,并最终在窗口上调用Present(),使其出现在屏幕的最前端。希望这对其他人有帮助。听起来你只是想要一个模态对话框?是的,回首往事,我应该知道,我不记得“模态”这个词了。添加它作为答案,谢谢。谢谢编辑Amith003,但似乎我偶然发现了我自己问题的答案。我不能再回答我自己的问题6个小时,所以我现在就把它贴在这里。calculator.calc.FocusOutEvent+=(obj,args)=>calculator.calc.Present();其中calculator是我的自定义类,calc是公共窗口属性。当焦点离开计算器窗口时,它会触发FocusOutEvent,并最终在窗口上调用Present(),使其出现在屏幕的最前端。希望这对其他人有帮助。听起来你只是想要一个模态对话框?是的,回首往事,我应该知道,我不记得“模态”这个词了。添加它作为答案,谢谢。