У меня есть DrawingArea, который я хотел бы получать события мыши.
Из учебников я обнаружил, что KeyPressEvent также будет перехватывать события мыши.
Однако для следующего кода обработчик никогда не вызывается.
static void Main ()
{
Application.Init ();
Gtk.Window w = new Gtk.Window ("");
DrawingArea a = new CairoGraphic ();
a.KeyPressEvent += KeyPressHandler;
w.Add(a);
w.Resize (500, 500);
w.DeleteEvent += close_window;
w.ShowAll ();
Application.Run ();
}
private static void KeyPressHandler(object sender, KeyPressEventArgs args)
{
Console.WriteLine("key press event");
}
Я пробовал кучу вещей, читая различные форумы и учебники, включая:
Добавление EventBox к окнам и размещение DrawingArea в окне событий и подписка на KeyPressEvent для EventBox. (не работает)
Вызов AddEvents ((int) Gdk.EventMask.AllEventsMask); на любом виджете
Я обнаружил, что подписка на Windows KeyPressEvent действительно давала мне события клавиатуры, но не события щелчка мыши.
Все соответствующие страницы в моно документах дают мне ошибки, поэтому я немного застрял