none
COMO PUEDO REALIZAR UNA ACCIÓN DE UN CONTROL DESDE OTRO FORMULARIO C# RRS feed

  • Pregunta

  • Hola buenas tardes y un cordial saludo, el motivo de mi mensaje como se puede ver en el titulo, Me gustaria realizar un acción de un control desde otro formulario, lo que hize es que mi panel que esta en otro formulario y despues agrege mi formulario al primero haciendo que quede un formulario hijo, solo lo unico que me falta es poder manipular los controles del formulario hijo, saludos. 
    lunes, 8 de enero de 2018 22:02

Respuestas

  • Retrocedamos un poco y planteemos una pregunta básica y elemental de programación orientada a objetos: Si tienes una clase1 y una clase2, y la clase2 tiene un campo "variable1", ¿Cómo llamarías a la variable1 de la clase2 desde la clase1?

    Una vez que contestes esa pregunta, tienes tu respuesta a la pregunta de los formularios: Un formulario al fin y al cabo es una clase, y los controles se exponen como campos de la clase, luego la misma instrucción que llama de la clase1 a la clase2 vale para el control del formulario.

    Esencialmente, la respuesta es esta: En la clase1 ponemos instanciaDeLaClase2.variable1=valor.

    Traducido a formularios, es válido hacerlo como lo tienes:

     Panel PANELDEOTROFORUMULARIO =  (Panel)form2.Controls["PANEL1"]; PANELDEOTROFORUMULARIO.Left += 10 ;

    Donde la precaución fundamental para que funcione es que donde has puesto "form2" tiene que ser la instancia del Form2 que realmente estás presentando en pantalla. No vale con hacer previamente form2=new Form2(), y luego usar ese form2. Eso crearía una nueva instancia, con todo el contenido vacío, y por tanto te fallaría al buscar el control. Tienes que arrastrar la misma instancia de form2 que originalmente presentaste en pantalla.

    martes, 9 de enero de 2018 7:20
    Moderador

Todas las respuestas

  • Hola Jovanny Medellin

    Con base a tu consulta, podrías colocar los forms y códigos que mencionas? esto  es para ver en donde estas atorado y los colaboradores del foro puedan guiarte en una solución.

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    lunes, 8 de enero de 2018 23:54
    Moderador
  •  Panel PANELDEOTROFORUMULARIO =  (Panel)form2.Controls["PANEL1"]; 
     PANELDEOTROFORUMULARIO.Left += 10 ;
    Este es mi codigo, pero antes que nada gracias por contestar lo que quiero hacer es que un ve ya incrutado mi Formulario 2 como Hijo en el Formulario 1, el formulario 2 contiene un Panel llamado panel 1 lo que quiero es que desde el formulario 1 puedo mover el panel como se muestra en el codigo el problema es que me da error justo cuando voy a tomar el control del formulario 2 saludos.
    martes, 9 de enero de 2018 0:34
  • Retrocedamos un poco y planteemos una pregunta básica y elemental de programación orientada a objetos: Si tienes una clase1 y una clase2, y la clase2 tiene un campo "variable1", ¿Cómo llamarías a la variable1 de la clase2 desde la clase1?

    Una vez que contestes esa pregunta, tienes tu respuesta a la pregunta de los formularios: Un formulario al fin y al cabo es una clase, y los controles se exponen como campos de la clase, luego la misma instrucción que llama de la clase1 a la clase2 vale para el control del formulario.

    Esencialmente, la respuesta es esta: En la clase1 ponemos instanciaDeLaClase2.variable1=valor.

    Traducido a formularios, es válido hacerlo como lo tienes:

     Panel PANELDEOTROFORUMULARIO =  (Panel)form2.Controls["PANEL1"]; PANELDEOTROFORUMULARIO.Left += 10 ;

    Donde la precaución fundamental para que funcione es que donde has puesto "form2" tiene que ser la instancia del Form2 que realmente estás presentando en pantalla. No vale con hacer previamente form2=new Form2(), y luego usar ese form2. Eso crearía una nueva instancia, con todo el contenido vacío, y por tanto te fallaría al buscar el control. Tienes que arrastrar la misma instancia de form2 que originalmente presentaste en pantalla.

    martes, 9 de enero de 2018 7:20
    Moderador
  • Muchas gracias por tu pasiencia y explicación ahora ya entiendo cual fue mi error y como era de esperarce me funciono correctamente el codigo, un gran saludo
    martes, 9 de enero de 2018 9:30