我对Gtk#很新,所以请耐心等待。我想创建自己的小部件,它有两个功能:绘制你想要的东西,并报告用户是否点击了这个小部件。
我的方法代码:
protected override bool OnExposeEvent (Gdk.EventExpose args)
{
// this works!
}
完全正常,但代码如下:
protected override bool OnButtonPressEvent (Gdk.EventButton ev)
{
// this is not working at all :-(
Console.WriteLine("test!");
return base.OnButtonPressEvent (ev);
}
无效。这两种方法都是对事件的一些响应,所以当我点击widget时为什么不调用OnButtonPressEvent
我有另一个继承自Table的小部件,但是Table中的按钮效果很好,为什么会出现这个问题呢?
提前致谢...
答案 0 :(得分:0)
你必须像这样为你的按钮创建一个信号:
Button button = new Button();
button.Clicked += Button_Clicked;
private void Button_Clicked(object sender, EventArgs e)
{
//some stuff
}
它会正常工作。这是您必须使用Button小部件的方式。有时候,这取决于你如何布置你的应用程序,一些小部件可以在你的按钮上,它可以做出不想要的行为。
答案 1 :(得分:-1)
您想使用按钮点击信号而不是按下按钮。这就是我对所有按钮的使用,它按预期工作。