visual usuario tutorial studio por pasar otro llamar instalar formulario form dinamicamente desde crear controles control como codigo botones boton aplicacion aparece agregar c# .net winforms visual-studio windows-forms-designer

usuario - No se puede ver el diseñador al codificar un formulario en C#



windows forms c# visual studio 2017 pdf (2)

Cuando abre un Form en el diseñador de formularios de Windows, el diseñador busca en la primera clase del archivo. Si el archivo tiene un Designer.cs contiene la otra parte parcial de la clase, también lo incluye e intenta deserializar el contenido del archivo. En el proceso de deserialización y carga del tiempo de diseño de su formulario, crea una instancia de la clase base de su formulario y busca en esos archivos declaraciones de componentes y método InitializeComponents . Si los encuentra, crea componentes y establece sus propiedades utilizando códigos deserializados y agrega componentes a la instancia de la clase base que creó.

Algunos datos útiles:

  • Los códigos en el constructor de su Form no se ejecutarán en tiempo de diseño, pero el constructor de la clase base de su formulario se ejecutará en tiempo de diseño.
  • Los códigos en InitializeComponent no se ejecutarán en tiempo de diseño, pero esos códigos se deserializarán y se usarán para crear el diseñador del formulario.
  • El diseñador no puede mostrar un formulario que tenga una clase base abstracta. ( solution )
  • El diseñador no puede mostrar un formulario que tenga una clase genérica. Por ejemplo, no puede mostrar MyForm:SomeForm<SomeClass> , pero puede mostrar SomeForm<T>:Form . ( solution )
  • Si define una nueva propiedad para su formulario, las propiedades no se mostrarán en la ventana de propiedades. La ventana de propiedades muestra las propiedades de la clase base pero con los valores de su formulario.
  • Cuando un archivo contiene 2 clases, si el formulario no era la primera clase, el diseñador no puede cargar y recibe una advertencia que dice que el formulario debe ser de primera clase para mostrar en el diseñador.
  • Las reglas anteriores se aplicarán también a UserControls.

Ejemplo

Eche un vistazo al siguiente código, que tiene algunos problemas graves:

  • La clase tiene un constructor diferente al nombre de la clase.
  • La declaración int i="x";
  • No hay punto y coma, mientras que esta es una clase de C #
  • El método InitializeComponent no llamó al constructor

Pero la noticia interesante es que puedes ver el formulario en el diseñador, ¡incluso con esos errores!

Simplemente cree un archivo en su proyecto y coloque los códigos a continuación en el archivo y guarde el archivo y ciérrelo. Luego, sin intentar crear la solución, abra el formulario en el diseñador. Aquí está el código:

using System using System.Windows.Forms namespace SampleApplication { public class MyForm:Form { public NotMyForm() { } public void InitializeComponent() { int i="x"; textBox1 = new TextBox() textBox1.Text = "Hi" this.Controls.Add(textBox1) } private TextBox textBox1 } }

Y aquí hay una captura de pantalla del diseñador:

Más información

Para encontrar más información, eche un vistazo a este enlace:

Solución para tu pregunta

Como solución, es suficiente para que muevas private Numeric txtbox; y colóquelo en su segundo archivo en la clase Exercise .

Estoy siguiendo this tutorial sobre winforms, y hasta ahora el tutorial está codificando el formulario sin usar la caja de herramientas. Creo que presentará la caja de herramientas con más profundidad en breve.

Siguiendo el tutorial, hice una clase parcial en las siguientes dos piezas de código:

Primer archivo :

using System; using System.Windows.Forms; public class Numeric : System.Windows.Forms.TextBox { public Numeric() { } } public partial class Exercise { private Numeric txtbox; System.ComponentModel.Container components; }

Segundo archivo

using System; using System.Windows.Forms; public partial class Exercise : Form { private void InitializeComponent() { txtbox = new Numeric(); Controls.Add(txtbox); } public Exercise() { InitializeComponent(); } } public class program { public static int Main() { Application.Run(new Exercise()); return 0; } }

Cuando ejecuto el código con F5, todo se ve bien: el formulario aparece con el cuadro de texto.

Pero por alguna razón, cuando hago clic derecho en el segundo archivo y elijo "Ver diseñador", aparece un error que dice "La variable ''txtbox'' no está declarada o nunca fue asignada". Puedo elegir "Ignorar y continuar", lo que me lleva a un formulario sin cuadro de texto.

¿Por qué ocurre esto? Sé que algunos de ustedes piensan que debería usar la caja de herramientas, y probablemente sea lo más sensato, pero aún me gustaría entender por qué sucede esto.


La declaración de los controles debe colocarse en los archivos Designer.cs para que Visual Studio pueda compilar esta unidad y mostrarla.

Cuando inicia la aplicación, el compilador tiene en cuenta todas las partes de su clase parcial y luego encuentra la declaración txtBox.

Intente dejar solo la clase de formulario con sus declaraciones gráficas en un solo archivo. Este archivo único debe tener el método InitializeComponent, el constructor y las declaraciones de campo de los componentes de la interfaz de usuario inicializados en InitializeComponent ().