Menu contextual desde un Treeview en Mono

22 03 2008

He pasando bastante tiempo investigando de como se hacen cosas en Mono, lo cual la documentación es muy poca, muchas cosas me han costado, y esta es una de esas 😛 .

Para mostrar un menú a dar click en alguna de las filas del treeview, es necesario agregar el evento de ButtonKeyPressRelease si se usa monodevelop es muy sencillo, un punto importante es que mono en sus ultimas versiones no maneja sin un indicador el evento de botón presionado, por lo que hay que agregar una bandera, un ejemplo seria:

[GLib.ConnectBefore] // muy importante para que se dispare el evento
protected virtual void OnTreeview2ButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args)
{
   Gdk.EventButton eventbutton = args.Event;
   if (eventbutton.Button == 3)
   {
       doPopup(); // Metodo que muestra el menu
   }
}

con eso tenemos el evento que se dispara, y el método que muestra un ejemplo de menu:

protected void doPopup()
        {
            // Menu contextual
            Menu popup = new Menu();
            // Menu item de Detener
            MenuItem menuItemDetener = new MenuItem("Detener Proceso");
            menuItemDetener.ButtonReleaseEvent += new ButtonReleaseEventHandler(<metodo_que_se_dispara>);
            popup.Append(menuItemDetener);            

            // Menu item de Matar
            MenuItem menuItemMatar = new MenuItem("Matar Proceso");
            menuItemMatar.ButtonReleaseEvent += new ButtonReleaseEventHandler(</metodo_que_se_dispara><metodo_que_se_dispara>);
            popup.Append(menuItemMatar);
            popup.Popup(null, null, null, IntPtr.Zero, 3, Gtk.Global.CurrentEventTime);
            popup.ShowAll(); // importante: si esto da un error que no muestra los menuItem's
        }

Después de eso, ya podemos levantar un menú al dar click en una fila X de un treeview.

CYA.

Anuncios

Acciones

Information

2 responses

22 10 2010
Rene

Cheverazo esta ayuda…… el ejemplo muy claro…

Ahora t hago una pregunta… como puedo imprimir lo q se dibuja un canvas

22 10 2010
£ÐУЯ

No lo he hecho, pero aquí esta un tutorial que te puede ayudar http://www.mono-hispano.org/wiki/Tutorial_de_Gnome_Canvas

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: