Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

222
Views
¿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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!