Diferencia entre revisiones de «Mono»
(→Tree View) |
|||
Línea 7: | Línea 7: | ||
* '''CursorChanged''': Se dispara cuando se selecciona una fila. | * '''CursorChanged''': Se dispara cuando se selecciona una fila. | ||
* '''RowActivated''': Se dispara cuando se hace doble click en una fila. | * '''RowActivated''': Se dispara cuando se hace doble click en una fila. | ||
+ | |||
+ | Así para leer los valores de una fila en la que se ha hecho un doble click sería: | ||
+ | |||
+ | <csharp> | ||
+ | Gtk.TreeView tree; | ||
+ | |||
+ | protected virtual void OnRowActivated(object o, Gtk.RowActivatedArgs args) { | ||
+ | TreeModel model; | ||
+ | TreeIter iterSelected; | ||
+ | |||
+ | if (tree.Selection.GetSelected(out model, out iterSelected)) { | ||
+ | Console.WriteLine("Valor: "+model.GetValue(iterSelected, 1)); | ||
+ | } | ||
+ | } | ||
+ | </csharp> | ||
== Guardar un objeto interno == | == Guardar un objeto interno == |
Revisión de 18:47 15 oct 2006
Mono es una implementación libre del lenguaje C# (se lee C-Sharp).
Contenido
Tree View
Se trata de una clase que nos sirve tanto para presentar listas (tablas) como árboles.
Señales
- CursorChanged: Se dispara cuando se selecciona una fila.
- RowActivated: Se dispara cuando se hace doble click en una fila.
Así para leer los valores de una fila en la que se ha hecho un doble click sería:
<csharp> Gtk.TreeView tree;
protected virtual void OnRowActivated(object o, Gtk.RowActivatedArgs args) {
TreeModel model; TreeIter iterSelected; if (tree.Selection.GetSelected(out model, out iterSelected)) { Console.WriteLine("Valor: "+model.GetValue(iterSelected, 1)); }
} </csharp>
Guardar un objeto interno
Tanto si usamos un TreeStore como un ListStore podemos usar una columna invisible para almacenar un objeto:
<csharp> TreeStore treeStore = new TreeStore(typeof(string) , typeof(MiObjecto)); </csharp>
Miscelánea
Cosas varias.
Escribir en la consola
Es de lo primero que tenemos que saber de un lenguaje:
<csharp> Console.WriteLine("Hola, mundo!"); </csharp>
Cambiar el puntero del ratón
Nuestro programa puede realizar alguna operación que tarde unos instantes, con lo que tendríamos que hacerle saber al usuario que está trabajando y no se ha colgado. Para eso lo suyo es poner es cambiar el puntero del ratón al principio del proceso:
<csharp> this.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch); this.GdkWindow.Display.Sync(); </csharp>
Y luego volver a dejarlo como estaba:
<csharp> this.GdkWindow.Cursor = null; this.GdkWindow.Display.Sync(); </csharp>