Re: Saludo y pregunta ultra tonta

Jonatan Anauati <[email protected]>
Newsgroups gmane.comp.gnome.mono.hispano
Message-ID <1235335636.12653.23.camel@dino-thunder_ng>
Me corrijo, la inserción es realizada al llamar a 
base.OnKeyPressEvent (evnt);, lo mas correcto sería:

...
protected override bool OnKeyPressEvent (Gdk.EventKey evnt)
{
    // lo que quieras hacer va acá.
    System.Console.WriteLine ("OnKeyPress (): {0}",evnt.Key.ToString());
    return base.OnKeyPressEvent (evnt);
}

Un saludo.
El dom, 22-02-2009 a las 17:42 -0300, Jonatan Anauati escribió:
> Hola, el motivo es que el widget TextView está capturando todas las
> pulsaciones, filtrando las que 
> inserta en el texto y dejando solo las que mencionaste antes.
> 
> La forma de capturar todas las teclas es sobreescribir el método
> "OnKeyPressEvent", que viene por
> herencia desde Gtk.Widget. Ejemplo:
> 
> using Gtk;
> using System;
> namespace TestGtkSharp
> {
>     class CustomTextView : TextView
>     {
>         // Este metodo se corre antes de llamar a KeyPressEvent. Este
> es el encargado
>         // de decidr si se maneja (return true) o no se maneja la
> inserción (return false).
>         protected override bool OnKeyPressEvent (Gdk.EventKey evnt)
>         {
>             // todo lo quieras hacer empezaría aquí.
>             System.Console.WriteLine ("OnKeyPress (): {0}",
> evnt.Key.ToString());
>             base.OnKeyPressEvent (evnt);
>             // si retornas false, el evento KeyPressEvent no se
> correrá (y ninguna
>             // de sus manejadoras, por lo cual no se insertará el
> texto en el text view).
>             return true;
>         }
>     }
> 
>     class MainClass
>     {
>         public static void Main (string [] args)
>         {
>             Application.Init();
>             Gtk.Window win = new Window ("Titulo");
>             CustomTextView tv = new CustomTextView ();
>             win.Add (tv);
>             win.Resize (200,200);
>             win.ShowAll ();
>             Application.Run ();
>         }
>     }
> }
> 
> Este código puede mostrar por consola TODAS las teclas que se
> presionan, y luego al
> retornar el True en dicho lugar, el símbolo es insertado en el text
> view.
> 
> Espero te sirva, un saludo.
> 
> El dom, 22-02-2009 a las 15:38 -0200, Juan BC escribió: 
> > Eso ya estaba, por que como explique algunos eventos los toma, solo que 
> > no teclas alfanuméricas.
> > Acá esta el codigo de la partial class donde se agrega el evento que 
> > auntogenera monodevelop.
> > 
> > http://code.google.com/p/jbc-mini-projects/source/browse/trunk/mono/monook/gtk-gui/MainWindow.cs
> > 
> > Jonatan Anauati escribió:
> > > Buenos dias, te comento que lo que te falta hacer es enlazar tu 
> > > manejador de evento (void OnTextview1KeyPressEvent) con el evento 
> > > KeyPressEvent:
> > > 
> > > window.KeyPressEvent += new KeyPressEventHandler (OnTextview1KeyPressEvent);
> > > 
> > > Con esto te debería funcionar. Te paso un ejemplo:
> > > 
> > > using Gtk;
> > > using System;
> > > 
> > > namespace TestGtkSharp
> > > {
> > >     class MainClass
> > >     {
> > >         public static void Main (string [] args)
> > >         {
> > >             Application.Init();
> > >             Gtk.Window win = new Window ("Ejemplo");
> > >             win.KeyPressEvent += new KeyPressEventHandler 
> > > (shortcutCallBack);
> > >             win.Show ();
> > >             Application.Run ();
> > >         }
> > > 
> > >         private static void shortcutCallBack (object sender, 
> > > KeyPressEventArgs args)
> > >         {
> > >             System.Console.WriteLine ("press");
> > >         }
> > >     }
> > > }
> > > 
> > > Un saludo.
> > > El dom, 22-02-2009 a las 07:21 -0200, Juan BC escribió:
> > >> Muy buenas, ante todo un saludo a la gente de mono hispano, me llamo 
> > >> Juan soy desarrollador (casi ingeniero) tengo conocimientos en Java, 
> > >> python, bash, erlang y ahora me sente con C#, era una deuda que me tenia 
> > >> y era hora de empezar con .net/mono
> > >>
> > >> La pregunta esta debe haber salido MIL veces pero juro ante satanás que 
> > >> googlee como un condenado y no encontré la respuesta:
> > >>
> > >> Como cuerno con GTK# logro atrapar un evento de teclado KeyPress solo me 
> > >> atrapa los shift y teclas especiales pero nada de alfanumérico.
> > >>
> > >> Les adhiero mi función (que no anda) y les paso un link donde esta el 
> > >> repo del pet-program que estoy haciendo asi espero me ayuden a 
> > >> solucionarlo. Gracias
> > >>
> > >>
> > >> protected virtual void OnTextview1KeyPressEvent (object o, 
> > >> Gtk.KeyPressEventArgs args)
> > >>          {
> > >>                  Console.WriteLine("DLDLDL");
> > >>
> > >>          }
> > >>
> > >>
> > >> SVN [proyecto para monodevelop]
> > >> http://code.google.com/p/jbc-mini-projects/source/browse/trunk/mono/monook/
> > >> _______________________________________________
> > >> Mono-hispano mailing list
> > >> [email protected] <mailto:[email protected]>
> > >> https://listas.hispalinux.es/mailman/listinfo/mono-hispano
> > > 
> > > -- 
> > > por favor evita el enviarme archivos adjuntos de MS Word. 
> > > Ver:http://www.gnu.org/philosophy/no-word-attachments.es.html
> > > printk("fent linux\n");
> > > 
> > 
> > _______________________________________________
> > Mono-hispano mailing list
> > [email protected]
> > https://listas.hispalinux.es/mailman/listinfo/mono-hispano
> -- 
> por favor evita el enviarme archivos adjuntos de MS Word. 
> Ver:http://www.gnu.org/philosophy/no-word-attachments.es.html
> printk("fent linux\n");

_______________________________________________
Mono-hispano mailing list
[email protected]
https://listas.hispalinux.es/mailman/listinfo/mono-hispano
smime.p7s (application/x-pkcs7-signature, 3.4 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.