Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
¿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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda