| |||
Sobre Windows Forms Apps He trabajado muy poco con windows forms y necesito realizar un pequenho proyecto en el cual tengo varias dudas importantes, e inicio este post para ver si aquellas personas que tienen un conocimiento mas avanzado sobre el tema pueden ayudarme con las mismas, que en muchos casos pueden ser relativamente sencillas, ya que (aunque tal vez no he buscado suficiente) no he logrado encontrar una bibliografia donde apoyarme en solucionar lo que necesito, estudio 2do anho de Ciencia de la Computacion asi que cualquier respuesta quedare sinceramente muy agradecido. |
| |||
Respuesta: Sobre Windows Forms Apps La primera duda que me ha detenido durante un tiempo es la siguiente: Como puedo controlar bien la apertura y el cierre de formularios??? En especifico he tratado de cerrar un formulario desde otro y no puedo. el metodo Close() invocado en cualquier instancia de un form a resultado cerrar la aplicacion y no se como manejar el acceso a las propiedades de un formulario desde otro. Por ejemplo, como puedo ocultar un boton en un formulario al seleccionar una opcion en otro ??? ni siquiera se si es posible pero supongo que si y me gustaria saber como trabajar en general con las caracteristicas de un formulario desde otro... Agradecido de antemano |
| |||
Respuesta: Sobre Windows Forms Apps Cita: Si estamos hablando de C# todo tiene que ver con los modificadores de acceso (Public, private, protected etc....etc.....etc....)
Iniciado por EricNG39 La primera duda que me ha detenido durante un tiempo es la siguiente: Como puedo controlar bien la apertura y el cierre de formularios??? En especifico he tratado de cerrar un formulario desde otro y no puedo. el metodo Close() invocado en cualquier instancia de un form a resultado cerrar la aplicacion y no se como manejar el acceso a las propiedades de un formulario desde otro. Por ejemplo, como puedo ocultar un boton en un formulario al seleccionar una opcion en otro ??? ni siquiera se si es posible pero supongo que si y me gustaria saber como trabajar en general con las caracteristicas de un formulario desde otro... Agradecido de antemano Para abrir y cerrar forms desde otros puedes trabajar con la misma instancia del form para ello esta funcion te será útil
Código:
Dond "Form" es el nombre de tu formulario, y listo supongamos que estoy en el codigo del Form1 y declaro esa funcion en Form2 para poder manipular Form2 lo unico que tengo que hacer en Form1 es declarar un tipo Form2 e inicializarlo invocando la funcion que me regresara la instancia de Form2 si no existe la creará si ya existe me la mandará y listo.private static Form InstanciaHija = null; public static Form Instancia() { if (InstanciaHija == null || InstanciaHija.IsDisposed == true) { InstanciaHija = new Form(); } InstanciaHija.BringToFront(); return InstanciaHija; }
Código:
Ahora con las propiedades del formulario, tambien depende del nivel de acceso por ejemplo si quiero manipular un boton de Form2 desde Form1 entonces tendré que dejarle un modificador publico al boton desde form2, eso lo puedes ver en el diseñador en el recuadro de propiedades del objeto bajo la propiedad "Modifiers".Form2 frm1 = Form2.Instancia(); frm1.Show// o puede ser .close a como sigue frm1.Close() Una cosa mas, con este codigo estarias trabajando con una instancia estatica es decir que a menos que la cierres nunca cambiara porque es estatica, por ejemplo si oculte el boton de Form2, y en mi codigo mando a cerrar Form2 de esta manera frm1.Hide() (No lo estoy cerrando lo estoy ocultando) la proxima vez que le des frm1.Show() el boton no aparecera puesto que lo ocultast anteriormente, si en vez de hide utilizo close (frm1.Close) entonces mi instancia muere y cuando invoce de nuevo frm1.Show() el boton estara ahi porque es una nueva instancia no es con la que trabaje (es decir ya no es carlos es carlos2.....no se si me explico). Espero haberme explicado , espero te sirva Saludos! Link: http://www.mediafire.com/download/xf...m/AyudaForo.7z Última edición por Gerard93; 05/02/2016 a las 15:54 Razón: Una cosa mas...2... Adjunto un enlace con un ejemplo :) |
Etiquetas: |