Re: Saludo y pregunta ultra tonta
Jonatan Anauati <[email protected]>
| Newsgroups | gmane.comp.gnome.mono.hispano |
|---|---|
| Message-ID | <1235335372.12653.20.camel@dino-thunder_ng> |
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