Cómo: Mostrar formularios a partir de componentes
Actualización: noviembre 2007
Aunque la mayor parte de los componentes no tiene interfaces visuales, hay veces en las que sería útil para un usuario interactuar visualmente con un componente. Por ejemplo, un componente que represente una cuenta bancaria podría mostrar un formulario especializado de alerta cuando la cuenta se quede sin fondos. Estas funciones deben permanecer constantes en el componente y no dependen de la aplicación cliente. Dado que los formularios son clases, es fácil crear una instancia del formulario y, a continuación, mostrarla por medio del componente.
Existen dos métodos para crear formularios:
Crear el formulario fuera del componente, lo que permite utilizar un entorno de diseño como Visual Studio para crear la apariencia y el comportamiento del formulario.
Hacer que el formulario sea una clase anidada dentro del componente. Este método tiene la ventaja de que el formulario siempre forma parte del componente y es posible controlar cómo se utiliza y se expone. No obstante, la principal desventaja consiste en que no podrá utilizar un diseñador con el formulario y deberá desarrollarlo por completo mediante la codificación a mano.
Para mostrar un formulario desde el componente
Cree el formulario Windows Forms que desee mostrar desde el componente.
Si el formulario que desea mostrar no se encuentra en el mismo ensamblado que el componente, deberá hacer referencia al ensamblado que contenga el formulario para generarlo correctamente.
Declare una variable local como nueva instancia del formulario.
Por ejemplo, si el formulario se denomina MyForm, el código sería similar al siguiente.
Dim AFormInstance as New MyForm
MyForm AFormInstance = new MyForm();
MyForm AFormInstance = new MyForm();
Llame a los métodos Show, ShowDialog y Hide del formulario para controlar la presentación, como se muestra en los ejemplos de código siguientes.
AFormInstance.Show ' Displays the form. AFormInstance.ShowDialog ' Displays the form and waits for user interaction before continuing. AFormInstance.Hide ' Hides the form.
// Displays the form. AFormInstance.Show(); // Displays the form and waits for user interaction before continuing. AFormInstance.ShowDialog(); // Hides the form. AFormInstance.Hide();
// Displays the form. AFormInstance.Show(); // Displays the form and waits for user interaction before continuing. AFormInstance.ShowDialog(); // Hides the form. AFormInstance.Hide();