System.Windows.Forms.Form.CancelButton
:
获取或设置用户按下ESC键时单击的按钮控件。
所以,基本上,它与GTK#中的.Default
窗口参数相同,除了escape而不是enter键。这是否存在,我是否只是错过它,或者我是否必须尝试一起破解它才能获得此功能?
修改:由于有两个人这样做了,这个问题是关于 GTK# ,而不是Winforms。我需要在winforms中获得与CancelButton
相同的功能,但我需要在GTK中使用它。
答案 0 :(得分:2)
在玩了一段时间之后,似乎与Winforms不同(至少没有玩过它们),GTK似乎在小部件树下传递关键事件,因此,以下代码可以正常工作,专注于任何窗口上的小部件:
public class ConnectWindow : GTK.Window
{
public ConnectWindow(Window parent)
: base(WindowType.Toplevel)
{
this.Parent = parent;
_init();
}
private void _init()
{
this.Title = "Connect to...";
this.Modal = true;
this.WindowPosition = WindowPosition.Center;
this.KeyReleaseEvent += ConnectWindow_KeyReleaseEvent;
// [snip] other initialisation stuff
}
void ConnectWindow_KeyReleaseEvent(object o, KeyReleaseEventArgs args)
{
if (args.Event.Key == Gdk.Key.Escape)
{
btnCancel.Activate();
}
}
}
答案 1 :(得分:-3)
要让它自动生效,您需要做几件事:
执行这些操作时,按退出键将自动关闭窗口。