Jump to content

Problema WinForm (C#)


Recommended Posts

Hola a Todos

 

Tengo el siguiente problema

 

Estoy practicando en c# y desde un form tengo un button donde abre otro form

pero el nuevo form no me muestra nada..... es decir que el nuevo form me aparece pero no me muestra nada de lo que le he agregado a este(buttons, textbox, label, etc)... solo me aparece el nuevo form vació y seria.

 

El código que puse para que me mostrara el nuevo form es el siguiente

 

 

 

 

Form Muestra;

Muestra = new Form();

Muestra.Show();

 

 

Si alguien me pudiera ayudar seria perfect.....

Link to comment
Share on other sites

Si estás usando este código para mostrar el formulario...

 Form Muestra;
 Muestra = new Form();
 Muestra.Show();

...entonces obtienes un formulario vacío, porque eso es lo que hace el contructor de la clase Form.

Si agregaste el formulario de forma correcta a tu proyecto, entonces tienes que crear una instancia usando el nombre de la clase de tu formulario. Los formularios que creas en .NET derivan de la clase Form, o sea, heredan los miembros de la clase Form, pero son de otra clase. Cada formulario que agregas es una clase nueva derivada de la clase Form.

 

Si dejas los nombres por defecto que asigna Visual Studio, entonces el formulario principal de tu proyecto pertenece a la clase Form1 y el otro formulario que agregaste sería de la clase Form2. Por lo tanto, para mostrar el otro formulario tendrías que usar:

 Form2 muestra = new Form2();
 muestra.ShowDialog();
 muestra.Dispose();

ó

 Form2 muestra = new Form2();
 muestra.Show();
 muestra.Close();

Obviamente, si le cambiaste el nombre al formulario, tienes que cambiar el nombre de la clase.

 

Cuando agregas un formulario a un proyecto en Visual Studio, el formulario se guarda en un archivo con el nombre que le asignaste en el cuadro de diálogo correspondiente, y dentro de este archivo se define una clase pública con el mismo nombre del archivo. Es decir, si mantuviste los nombres por defecto:

  • El formulario principal estaría en un archivo llamado Form1.cs y en él se define una clase Form1 que deriva de Form.
  • El formulario que agregaste después estaría en un archivo llamado Form2.cs y en él se define una clase Form2 que deriva de Form.

 

O sea, normalmente vas a ver algo como esto en el código fuente de tus formularios:

 public partial class Form1 : Form
 {
     public Form1()
     {
         InitializeComponent();
     }

     // etc.
 }

 

Así que usando el constructor del formulario (y no el de la clase Form :no: ) se incluirán todos los controles que tú agregaste con el diseñador de Visual Studio.

Edited by susodicho
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...