Gtk#OnButtonPressEvent不起作用

时间:2014-04-19 14:15:32

标签: c# mono gtk#

我对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中的按钮效果很好,为什么会出现这个问题呢?

提前致谢...

2 个答案:

答案 0 :(得分:0)

你必须像这样为你的按钮创建一个信号:

    Button button = new Button();
    button.Clicked += Button_Clicked;

    private void Button_Clicked(object sender, EventArgs e)
            {
               //some stuff
            }

它会正常工作。这是您必须使用Button小部件的方式。有时候,这取决于你如何布置你的应用程序,一些小部件可以在你的按钮上,它可以做出不想要的行为。

答案 1 :(得分:-1)

您想使用按钮点击信号而不是按下按钮。这就是我对所有按钮的使用,它按预期工作。