CLR: .Net / Mono / Boo / Otros CLR > C#
modificar propiedades entre forms
(1/1)
kancerman:
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:
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# --- public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 fr = new Form2(this.toolStrip1); //pasamos como argumento el objeto toolstrip fr.Show(); } }
form2 (tiene un boton que habilita el toolstrip del form1)
--- Código: C# --- public partial class Form2 : Form { public Form2(ToolStrip tol) //declaramos el constructor solicitando un objeto tipo toolstrip { InitializeComponent(); TOL = tol; } ToolStrip TOL; private void button1_Click(object sender, EventArgs e) { TOL.Enabled = true; } }
Si tienes alguna duda avisa. un saludo
kancerman:
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
Navegación
Ir a la versión completa