Событие от нажатия мыши GTK# в рисовании области

Я просто констатирую также и с Node, но я получил похожую ошибку, когда случайно ввел node test вместо npm test. Может быть, вы делаете аналогичную ошибку?

10
задан trampster 16 March 2009 в 12:38
поделиться

2 ответа

Вы также должны помнить, что маска событий должна быть добавлена ​​к вашей DrawingArea:

a.AddEvents ((int) 
            (EventMask.ButtonPressMask    
            |EventMask.ButtonReleaseMask    
            |EventMask.KeyPressMask    
            |EventMask.PointerMotionMask));

Таким образом, ваш окончательный код должен выглядеть так:

class MainClass
{
    static void Main ()
    {
        Application.Init ();
        Gtk.Window w = new Gtk.Window ("");

        DrawingArea a = new DrawingArea ();
        a.AddEvents ((int) EventMask.ButtonPressMask);
        a.ButtonPressEvent += delegate(object o, ButtonPressEventArgs args) {
            Console.WriteLine("Button Pressed");
        };

        w.Add(a);

        w.Resize (500, 500);
        w.DeleteEvent += close_window;
        w.ShowAll ();

        Application.Run ();
    }

    static void close_window(object o, DeleteEventArgs args) {
        Application.Quit();
        return;
    }
}
13
ответ дан 3 December 2019 в 23:51
поделиться

Если Вы хотите поймать события от нажатия мыши, необходимо использовать ButtonPressEvent, ButtonReleaseEvent и MotionNotifyEvent:

a.ButtonPressEvent += delegate(object o, ButtonPressEventArgs args) {
    Console.WriteLine("Button Pressed");
}

KeyPressEvent только для Ключей.

0
ответ дан 3 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: