Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Para hacer invisible el formulario principal de una aplicación para Windows cuando se inicia la aplicación, debe trasladar la lógica de inicio de la aplicación a una clase diferente. No basta con definir la propiedad Visible en false.
Una vez separada la duración de la aplicación de la duración del formulario, puede hacer visibles (e invisibles) los formularios, puesto que la aplicación terminará cuando "cierre" la clase que se utilizó para iniciarla.
Nota: |
|---|
Puesto que un módulo es invisible mientras se ejecuta su código, el procedimiento siguiente incluye un paso para agregar un cuadro de mensaje al módulo de inicio, simplemente para demostrar que la aplicación se está ejecutando. |
Para establecer que un formulario sea invisible al principio
Siga uno de los procedimientos siguientes:
En Visual Basic, agregue un módulo a la aplicación para Windows; para ello, haga clic con el botón secundario del mouse en el proyecto y elija Agregar módulo.
En Visual C#, cree una nueva clase.
En Visual C++, abra Form1.cpp de su aplicación para Windows.
Para obtener más información sobre la creación de una aplicación para Windows, vea Cómo: Crear un proyecto de aplicación para Windows.
Dentro del módulo o clase, cree una subrutina Main que pueda actuar como objeto inicial del proyecto.
El ejemplo de código siguiente muestra qué enfoque se puede dar a esta acción.
Sub Main() ' Instantiate a new instance of Form1. Dim f1 as New Form1() ' Display a messagebox. This shows the application is running, ' yet there is nothing shown to the user. This is the point at ' which you customize your form. System.Windows.Forms.MessageBox.Show( _ "The application is running now, but no forms have been shown.") ' Customize the form. f1.Text = "Running Form" ' Show the instance of the form modally. f1.ShowDialog() End Sub// All methods must be contained in a class. // This class is added to the namespace containing the Form1 class. class MainApplication { public static void Main() { // Instantiate a new instance of Form1. Form1 f1 = new Form1(); // Display a messagebox. This shows the application // is running, yet there is nothing shown to the user. // This is the point at which you customize your form. System.Windows.Forms.MessageBox.Show("The application " + "is running now, but no forms have been shown."); // Customize the form. f1.Text = "Running Form"; // Show the instance of the form modally. f1.ShowDialog(); } }// You can use this Mian method in the Program class (Program.jsl): public static void main(String[] args) { // Instantiate a new instance of Form1. Form1 f1 = new Form1(); // Display a messagebox. This shows the application // is running, yet there is nothing shown to the user. // This is the point at which you customize your form. System.Windows.Forms.MessageBox.Show("The application " + "is running now, but no forms have been shown."); // Customize the form. f1.set_Text("Running Form"); // Show the instance of the form modally. f1.ShowDialog(); }void Main() { // Instantiate a new instance of Form1. Form1^ f1 = gcnew Form1(); // Display a messagebox. This shows the application // is running, yet there is nothing shown to the user. // This is the point at which you customize your form. System::Windows::Forms::MessageBox::Show( "The application is running now, " "but no forms have been shown."); // Customize the form. f1->Text = "Running Form"; // Show the instance of the form modally. f1->ShowDialog(); }
Nota:El cuadro de mensaje del código anterior se especifica con un espacio de nombres completo porque el módulo creado, a diferencia de un formulario Windows Forms estándar, no importa de forma predeterminada ningún espacio de nombres. Para obtener más información sobre la importación de espacios de nombres, vea References and the Imports Statement (Visual Basic), using (Directiva, Referencia de C#) (Visual C#) o using Directive (C++) (Visual C++). Application.Run() iniciará el suministro de mensajes, vital para el comportamiento de ciertas aplicaciones y que puede afectar al comportamiento del formulario durante ciertos momentos del ciclo de vida de la aplicación, como su cierre. Para obtener más información, vea Application.Run (Método).
Cambie el objeto inicial del proyecto para que sea Sub Main en lugar de Form1.
En Visual C#, establezca el objeto de inicio en el nombre de la clase del ejemplo anterior. Para obtener más información, vea Cómo: Elegir el formulario de inicio en una aplicación para Windows, así como Cómo: Cambiar el objeto inicial de una aplicación (Visual Basic).
Nota:En Visual C++, omita este paso para las aplicaciones para Windows.
Presione F5para ejecutar el proyecto.
Cuando se ejecute la aplicación, se ejecutará primero el código de Main(), mientras que la instancia de Form1 permanecerá oculta hasta que se ejecute el código que la muestra. Esto permite hacer lo que se desee dentro de la instancia de Form1 en segundo plano sin que lo perciba el usuario.
Vea también
Tareas
Cómo: Mostrar formularios Windows Forms modales y no modales
Cómo: Establecer la ubicación en pantalla de formularios Windows Forms