C# Mono Gtk窗口需要焦点进行输入
我还没有找到包含此功能的示例,或者我在文档中遗漏了它,或者它不在那里 我有一个全屏GUI程序,当用户需要输入数字时,必须在屏幕中央出现一个计算器窗口弹出窗口。用户键入一个数字并单击enter,或单击cancel继续通过窗口 问题是,单击计算器后面的全屏窗口会将该窗口带到前面,并在未完成预期输入的情况下隐藏计算器,这可能会让用户感到恼火 我想我正在尝试创建的功能就是大多数文本编辑器/IDE在按下“打开文件”按钮时发生的情况。如果您想查看代码,请告诉我,目前它只是两个独立的窗口类。窗口对象的Present()函数将该特定窗口置于最前面。因此,在希望保持在前面的窗口上添加FocusOutEvent侦听器,如:C# Mono Gtk窗口需要焦点进行输入,c#,mono,gtk#,C#,Mono,Gtk#,我还没有找到包含此功能的示例,或者我在文档中遗漏了它,或者它不在那里 我有一个全屏GUI程序,当用户需要输入数字时,必须在屏幕中央出现一个计算器窗口弹出窗口。用户键入一个数字并单击enter,或单击cancel继续通过窗口 问题是,单击计算器后面的全屏窗口会将该窗口带到前面,并在未完成预期输入的情况下隐藏计算器,这可能会让用户感到恼火 我想我正在尝试创建的功能就是大多数文本编辑器/IDE在按下“打开文件”按钮时发生的情况。如果您想查看代码,请告诉我,目前它只是两个独立的窗口类。窗口对象的Pres
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(),使其出现在屏幕的最前端。希望这对其他人有帮助。听起来你只是想要一个模态对话框?是的,回首往事,我应该知道,我不记得“模态”这个词了。添加它作为答案,谢谢。