c# Control de usuario-Propiedades personalizadas




winforms user-controls (3)

Desarrollé un Control de usuario en Visual Studio (WinForms C #) y tengo una pregunta.

Necesito que el usuario de mi Control de usuario pueda cambiar ciertos valores de cadena y me gustaría que puedan agregar el control de usuario a su Formulario y hacer clic en él para que aparezca el Panel de propiedades donde estarán las propiedades personalizadas de mi Control de usuario. desplegado.

¿Cómo puedo tener mis propias propiedades personalizadas para mi control de usuario? Por ejemplo:

Mi control de usuario contiene un TextBox, y me gustaría que el usuario pueda cambiar el valor de ese TextBox a través de una propiedad llamada "Texto" o "Valor" en las propiedades en Design-Time.


Simplemente agregue propiedades públicas al control del usuario.

Puede agregar los [Category("MyCategory")] y [Description("A property that controls the wossname")] para hacerlo más agradable, pero siempre que sea una propiedad pública , debería aparecer en el panel de propiedades.


Es muy simple, simplemente agrega una propiedad:

public string Value {
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

Usar la propiedad Text es un poco más complicado, la clase UserControl lo oculta intencionalmente. Deberá anular los atributos:

[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public override string Text {
  get { return textBox1.Text; }
  set { textBox1.Text = value; }
}

Lo haces a través de atributos en las propiedades, como este:

[Description("Test text displayed in the textbox"),Category("Data")] 
public string Text {
  get { return myInnerTextBox.Text; }
  set { myInnerTextBox.Text = value; }
}

La categoría es el encabezado bajo el cual la propiedad aparecerá en el cuadro de Propiedades de Visual Studio. Aquí hay una referencia de MSDN más completa , que incluye una lista de categorías.







properties