• Domingo 28 de Abril de 2024, 22:09

Autor Tema:  modificar propiedades entre forms  (Leído 4212 veces)

kancerman

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
modificar propiedades entre forms
« en: Martes 2 de Noviembre de 2010, 21:01 »
0
hola tengo un problemon

tengo 2 forms llamemosle form1 y form2
al hacer click en un boton del form1 me aparece el form 2 y al hacer click en un boton del form2 quiero cambiar la propiedad enabled de un toolstripmenuitem del form1 pero me sale un error "Se requiere una referencia de objeto para el campo, método o propiedad no estáticos "
lo hago asi form1.ingresoToolStripMenuItem.enabled=true;
tambien probe esto

form1 frm1= new form1();
frm1.ingresoToolStripMenuItem.enabled=true;
no me tiraba error pero no hacia nada

ojala puedan ayudarme

saludos y gracias de antemano

kancerman

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: modificar propiedades entre forms
« Respuesta #1 en: Miércoles 3 de Noviembre de 2010, 16:40 »
0
Le veo 2 posibles soluciones a tu problema, la 1ª y mas elegante, podria ser utilizando delegados y eventos, esta busca un poco en el foro que hay bastantes ejemplos. La otra, mas facil seria mandando el objeto al otro form por referencia y desde este otro form interactuar con el objeto, pongo el ejemplo:

form1 (tiene un botón para abrir el 2ºform y un toolstrip)
Código: C#
  1.  
  2. public partial class Form1 : Form
  3.     {
  4.         public Form1()
  5.         {
  6.             InitializeComponent();
  7.         }
  8.  
  9.         private void button1_Click(object sender, EventArgs e)
  10.         {
  11.             Form2 fr = new Form2(this.toolStrip1); //pasamos como argumento el objeto toolstrip
  12.             fr.Show();
  13.         }
  14.     }
  15.  

form2 (tiene un boton que habilita el toolstrip del form1)
Código: C#
  1.  
  2. public partial class Form2 : Form
  3.     {
  4.         public Form2(ToolStrip tol) //declaramos el constructor solicitando un objeto tipo toolstrip
  5.         {
  6.             InitializeComponent();
  7.             TOL = tol;
  8.         }
  9.  
  10.         ToolStrip TOL;
  11.  
  12.         private void button1_Click(object sender, EventArgs e)
  13.         {
  14.             TOL.Enabled = true;
  15.         }
  16.     }
  17.  

Si tienes alguna duda avisa. un saludo

kancerman

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: modificar propiedades entre forms
« Respuesta #2 en: Jueves 4 de Noviembre de 2010, 00:12 »
0
muchas gracias por responder, lo habia solucionado mandando el form1 como referencia pero creo que es mejor como dices tu mandar como referencia solo el objeto

muchas gracias