Пример:контекстное меню в Mono .NET GTK# - как реализовать

13:03:2013 Рі.

В программировании на WIndows Forms добавление контекстного меню в программу не вызывает сложностей - создается элемент контекстного меню, заполняется и далее данный элемент указывается как присоединенный к элементу управления, на котором нужно обработать вызов данного контекстного меню.

В Mono GTK# механизм выглядит несколько по-другому.

Здесь нет необходимости заранее создавать экземпляр контекстного меню. Можно выполнить его создание на нужном элементе управления.

Представим, что у нас есть TreeView, на котором нужно обработать вызов контекстного меню. Сначала добавляем обработчик нажатия мыши на этот элемент управления.

[GLib.ConnectBefore]
protected void OnTreeview1ButtonPressEvent (object o, Gtk.ButtonPressEventArgs args)
{
     if((int)args.Event.Button == 3)
     {
         Gtk.Menu contextMenu = new Gtk.Menu();
         Gtk.MenuItem item1 = new MenuItem("Element 1");
         contextMenu.Add(item1);
         contextMenu.ShowAll();
         contextMenu.Popup();
     }
}

  1. [GLib.ConnectBefore] выделено жирным специально, без этого указания ничего не отработает
  2. 3 - это идентификатор правой кнопки мыши
     

    Добавить комментарий



    Обновить

    « Работа с GTK# TreeView в Mono (на примере Monodevelop)   Решение:расширение контейнера в таблице GTK# Mono .NET в Monodevelop »
    ← Раньше

    Фотоальбом

    fotic.jpg

    Облако Тегов