Creare una property DropDown in un UserControl

mercoledì 20 maggio 2009 - 18.03

Brujo Profilo | Newbie

Salve a tutti,

qualcuno ha idea di come fare a creare in un usercontrol una proprietà che mi esponga i nomi dei controlli sul proprio parent?
Cercando un po a giro ho trovato riferimenti che dicono di utilizzare un TypeConverter, però non è che ci abbia capito troppo a dire il vero. Qualcuno ha qualche riferimento/ soluzione per risolvere?

Grazie,

Marco

Jeremy Profilo | Guru

Ciao.
Spero di aver capito bene la tua richiesta.
Se si, risolvi creando un tuo usercontrol che eredita dal controllo combobox e, nel costruttore, esegui una funzione che carica i riferimenti ai controlli del suo parent.
Per andare un pò più nello specifico, però, dovrei prima esser sicuro di aver capito bene la tua richiesta.
Intanto ti segnalo il link di un ottimo articolo che entra in maniera, a parer mio, molto approfondita nell'argomento
http://www.visual-basic.it/articoli/acNetWinFormCustomControls1.htm
http://www.visual-basic.it/articoli/acNetWinFormCustomControls2.htm
http://www.visual-basic.it/articoli/acNetWinFormCustomControls3.htm

Facci sapere...
Ciao

aiedail92 Profilo | Expert

Ciao

Potresti implementare il controllo derivandolo da una ListView. L'unica cosa che ti resta da fare è eseguire l'override del metodo OnParentChanged, e da lì (se il parent non è null) ciclare su tutti i suoi figli aggiungendoli alla ListView:

public class ParentChildren : ListView { public ParentChildren() { InitializeComponent(); } protected override void OnParentChanged(EventArgs e) { base.OnParentChanged(e); if(this.DesignMode) return; // Elimina gli elementi correnti this.Items.Clear(); // Ottiene il controllo padre di questo controllo Control parent = this.Parent; // Se non ha padre, finisce qui if (parent == null) return; // Cicla su tutti i figli del padre... foreach (Control c in parent.Controls) { //... aggiungendoli ai propri elementi this.Items.Add(c.Name); } } }

Se vuoi puoi anche migliorarlo in modo da aggiornarsi automaticamente quando vengono aggiunti\rimossi controlli, ma inizia a vedere se così può andar bene...

Luca

P.S. Scusa Jeremy, ho postato di notare che avevi già risposto tu...

Brujo Profilo | Newbie

grazie è quello che cercavo! Devo studiarmelo un attimo ed implementarlo, vi farò sapere com'è andata...
grazie a tutti per le risposte
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5