Creare un'istanza di un controllo

giovedì 24 luglio 2003 - 17.26

obi Profilo | Newbie

Ciao a tutti,
mi trovo in difficoltà, in un form ho un controllo listView che necessito di copiare dopo una serie di eventi con tutto il suo contenuto all'interno di un controllo panel sempre all'interno dello stesso form a run-time. Qualcuno mi sa dare qualche suggerimento pratico?
grazie ancora.

Brainkiller Profilo | Guru

Ciao,
interessante quesito.
Mmmmh... gli oggetti o Controls Win Forms che derivano dalla classe madre Object ereditano anche un metodo chiamato MemberwiseClone che però è protetto ed accessibile solo internamente dalla classe o da classi derivate, inoltre fa una shallow-copy e non una deep-copy quindi non è ciò che cerchi.
Il .NET Framework sembra non metta a disposizione un sistema per clonare i Controls così come accade con gli Array.
Fossi in te prima penserei bene a come progettare o riprogettare la tua applicazione, perchè devi creare un controllo uguale ad un altro ed inserirlo in un panel?
In ogni caso se vuoi creare una copia esatta puoi creare una listView2 popolarla ciclando sugli elementi di listBox2 dopodichè aggiungerla al panel forse questa è una soluzione buona.
Ti faccio un esempietto in C# e con una listBox poi puoi adattarlo:

listBox1.Items.Add("1");
listBox1.Items.Add("2");
listBox1.Items.Add("3");

ListBox listBox2=new ListBox();
for (int i=0;i<listBox1.Items.Count;i++)
listBox2.Items.Add(listBox1.Items[i]);

panel1.Controls.Add(listBox2);

Ciao
David De Giacomi

obi Profilo | Newbie

Ciao Brainkiller,
mi trovo a costruire un wizard simile al Microsoft installer per far compiere determinate operazioni in modo guidato all'utente. Non voglio generare tanti Form ma uno solo, mentre i controlli che dovrò far apparire all'interno del form li raggruppo in dei controlli panel che poi renderò visibili o meno a seconda del punto del wizard. Ad un certo punto e condizione del programma, mi trovo a dover 'clonare' il controllo listView inserito in un panel precedente nel panel corrente. Ecco spiegato il tutto, spero di essere stato sufficientemente chiaro, forse esistono altre tecniche per poter gestire dinamicamente i controlli su un form?

Brainkiller Profilo | Guru

Io ho visto come sono fatti alcuni di questi prodotti che generano Wizard e di solo non hanno un unico form ma più form, uno per ogni step.
Non so quanto ti convenga gestire tutti i controlli dinamicamente solo per mantenere un form.
Io ti consiglio di creartene più di uno e poi in base a certe impostazioni li richiami.
Oppure eventualmente puoi ancora fare un unico form e all'interno diversi panel tutti nascosti che contengono a loro volta tutti i controlli e che visualizzi alternativamente ad ogni step.
Cosa ne pensi?

ciao
David

obi Profilo | Newbie

Infatti la tua proposta di creare più panel è quella che stò perseguendo.
Ciao e grazie
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5