Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
¿Es posible limitar las propiedades expuestas del control incrustado UserControl?

Entonces existe el UserControl en formularios de Windows que le permite crear creaciones más complejas.

 public class MyUserControl : UserControl { public MyUserControl() { IniitalizeComponents(); } private void InitializeComponents() { this.datagridview1 = new System.Windows.Form.DataGridView(); this.Controls.Add(this.dataGridView1); } private System.Windows.Forms.DataGridView dataGridView1; }

Muy claro. Sin embargo, a veces desea exponer elementos de ese control interno. Entonces, puedo poner un "Fuente de datos" en mi control de usuario y conectarlo a dataGridView1.

 public object DataSource {get => dataGridView1.DataSource; set => dataGridView1.DataSource = value;}

Incluso puedo, si no quiero tener que exponer manualmente todas y cada una de las propiedades del control incrustado, podría exponer el control a través de una propiedad referenciada:

 [Browsable(true)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public DataGridView GridControl => this.dataGridView1;

El problema con esto es que expone TODAS las propiedades y eventos del control.
Introduzca el diseñador personalizado.

 [Designer(typeof(MyDGVDesigner)] public class CustomDataGridView : DataGridView { } class MyDGVDesigner : ControlDesigner { protected override PreFilterProperties(IDictionary properties) { properties.Remove(nameof(DataGridView.DataSource)); } }

Y ahora la "Cuadrícula" expuesta por mi UserControl ya no muestra la propiedad DataSource.
Sin embargo, este es el problema. Al diseñar mi UserControl, la propiedad también está oculta para el campo privado. Quiero "limitar" las propiedades/eventos expuestos a ProperyGrid en el nivel de propiedad "GridControl" para cuando el UserControl se agrega a un formulario externamente, pero no en el diseñador de formularios para UserControl donde estoy manipulando el dataGridView1 privado.

¿Es esto posible? Si es así, ¿cómo lo lograría?

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda