Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con evento en User Control

Estas en el tema de Problemas con evento en User Control en el foro de .NET en Foros del Web. Hola muy buenas a todos, Llevo 2 días intentando solventar un problema que me esta volviendo loco, hay algo que se me escapa y no ...
  #1 (permalink)  
Antiguo 15/06/2011, 12:06
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 6 meses
Puntos: 0
Problemas con evento en User Control

Hola muy buenas a todos,

Llevo 2 días intentando solventar un problema que me esta volviendo loco, hay algo que se me escapa y no consigo comprender el que. Resulta que cuando voy a pasar los parámetros al evento del User Control, este siempre esta a null.

Estoy realizando un User Control, este simplemente establece con una conexión a una BBDD y crea como resultado final un SQLCommand, que será el comando que se utilizará para toda la aplicación.

Luego, este UC, lo he puesto dentro de un simple formulario, con el fin de que cuando se de al botón OK del UC, se lance un evento para capturar el SQLCommand creado.

El UC esta compuesto de la siguiente manera:

Código:
namespace ucBBDDConections
{
    public partial class ConnectionWizard : UserControl
    {
        #region "Declaraciones"
            //Delegado:
            public delegate void delWizard(SqlCommand comand, EventArgs e);
            public event delWizard GetSQLCommand;

            private SqlCommand _Return = new SqlCommand();

        #endregion

        public ConnectionWizard()
        {
            InitializeComponent();
        }

        private void cmdTest_Click(object sender, EventArgs e)
        {
            .
            .
            //Aqui se crea el Comando

            _Return = myComand;
        }

        private void cmdOK_Click(object sender, EventArgs e)
        {
            if (GetSQLCommand != null)
            {
                GetSQLCommand(_Return,e);
            }
        }
    }
}
Luego, desde el propio formulario que contiene el control, simplemente esto:

Código:
namespace WizardForm
{
    public partial class frmConnection : Form
    {
        protected SqlCommand _Command;
        ConnectionWizard ucWizard = new ConnectionWizard();

        public frmConnection()
        {
            InitializeComponent();
        }

        void ucWizard_GetSQLCommand(SqlCommand comand, EventArgs e)
        {
            //throw new NotImplementedException();
        }
    }
}
el método ucWizard_GetSQLCommand, esta asociado al evento GetSQLCommand del control.

He seguido muchos ejemplos de internet y no encuentro el error y el objeto en este punto siempre esta a null. He hecho eventos en vb.net pero en C# me esta costando un poco :(

Código:
        private void cmdOK_Click(object sender, EventArgs e)
        {
            if (GetSQLCommand != null) // <- SIEMPRE ES NULL
            {
                GetSQLCommand(_Return,e);
            }
        }
¿Alguien me puede ayudar?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 15/06/2011, 13:46
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: Problemas con evento en User Control

No tengo mucha experiencia con el tema de UC, aparentemente está todo bien y lo veo bastante correcto, solo hay algo que no veo muy claro ¿cómo empieza a ejecutarse este fragmento de código?
Código:
private void cmdOK_Click(object sender, EventArgs e)
{
   if (GetSQLCommand != null)
   {
      GetSQLCommand(_Return,e);
   }
}
Dices que al pulsar el botón OK del UC, supongo que está bien asociado ¿no?

Si el método ucWizard_GetSQLCommand está bien asociado al evento es imposible que sea null.
  #3 (permalink)  
Antiguo 15/06/2011, 15:46
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Problemas con evento en User Control

Cita:
Iniciado por _Ruben_ Ver Mensaje
No tengo mucha experiencia con el tema de UC, aparentemente está todo bien y lo veo bastante correcto, solo hay algo que no veo muy claro ¿cómo empieza a ejecutarse este fragmento de código?
Código:
private void cmdOK_Click(object sender, EventArgs e)
{
   if (GetSQLCommand != null)
   {
      GetSQLCommand(_Return,e);
   }
}
Dices que al pulsar el botón OK del UC, supongo que está bien asociado ¿no?

Si el método ucWizard_GetSQLCommand está bien asociado al evento es imposible que sea null.
Hola Ruben, gracias por contestar.

Pues ese es el caso, que no veo nada erroneo y sigue estando a null y no entiendo el porque. El evento del boton Click, esta bién asociado, aunque no se si se podría probar de otra manera con el fin de simplemente probar otro método, pero esque me parece algo..un tanto raro, es como tenerlo delante y saber que esta bién, pero no funciona y desconoces el motivo..
  #4 (permalink)  
Antiguo 16/06/2011, 04:57
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: Problemas con evento en User Control

La verdad que es un caso muy extraño, así que he decido probar a crear yo mismo el UC (de forma rápida) y acabo de probarlo y este es el resultado:


Ya ves que funciona... y no he hecho nada distinto a lo que se ve en el código que muestras. No se que es lo que hay distinto desde tu código al mio.


Edito: Lo único que se me ocurre es pasarte el proyecto con el UC que he hecho de forma rápida para que compares diferencias y sino pues puedes usarlo como base para implementar el resto de cosas ya que el evento si funciona. Aquí te dejo el enlace para que lo descargues:
http://www.megaupload.com/?d=M8WFXJCI

Si encuentras la diferencia sería interesante saber que es lo que fallaba.

Un saludo.

Última edición por _Ruben_; 16/06/2011 a las 05:05
  #5 (permalink)  
Antiguo 16/06/2011, 08:12
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Problemas con evento en User Control

Cita:
Iniciado por _Ruben_ Ver Mensaje
La verdad que es un caso muy extraño, así que he decido probar a crear yo mismo el UC (de forma rápida) y acabo de probarlo y este es el resultado:


Ya ves que funciona... y no he hecho nada distinto a lo que se ve en el código que muestras. No se que es lo que hay distinto desde tu código al mio.


Edito: Lo único que se me ocurre es pasarte el proyecto con el UC que he hecho de forma rápida para que compares diferencias y sino pues puedes usarlo como base para implementar el resto de cosas ya que el evento si funciona. Aquí te dejo el enlace para que lo descargues:
http://www.megaupload.com/?d=M8WFXJCI

Si encuentras la diferencia sería interesante saber que es lo que fallaba.

Un saludo.
Buenas de nuevo. Hoy lo he vuelto a hacer, desde 0 en el trabajo y me ha funcionado, haciendo lo mismo. Creo, porque es lo unico que hice, que algo se trastocó cuando renombre el namespace, porque otar cosa no he hecho.

Aún así gracias por molestarte :D ha sido un placer.

Etiquetas: control, evento, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:53.