单声道Gtk窗口需要焦点输入

时间:2013-10-24 16:58:05

标签: c# mono gtk#

我无法找到包含此功能的示例,我在文档中错过了它,或者它不在那里。

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

问题是点击计算器后面的全屏窗口会将该窗口置于前面并隐藏计算器而不会完成预期的输入,这可能会让用户感到烦恼

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

1 个答案:

答案 0 :(得分:1)

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

windowObj.FocusOutEvent += (obj, args) => windowObj.Present();

会奏效。

替代此方法(以及更好的方法)是将窗口的Modal属性设置为true。

如果您偶然发现了这个并且您正在寻找一个弹出窗口来暂停任何调用等待输入的内容,请参阅此问题:

gtk# thread for window

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

希望这有帮助。