Newsgroup: it.comp.lang.visual-basic
Titolo: aggiungere controlli a runtime

ciao a tutti.
Ho una applicazione che mostra all'utente una datagrid con un certo 
numero di righe. Per ognuna di queste righe l'utente deve poter inserire 
un certo numero di parametri (che variano a seconda di quello che c'e' 
scritto in ogni riga).
Ho pensato di fare un bottone "Aggiungi parametri" che mostra una form 
dove ho una serie di label e di textbox dove l'utente inserisce i valori 
dei parametri.
Per ora è così, in futuro potrei voler disegnare un menu a tendina al 
posto della textbox per certi parametri o un radio per i booleani ecc ecc.
Qual'e' il modo migliore per fare questa cosa?
Io ho iniziato cosi':
Dim lbl As New System.Windows.Forms.Label
  With lbl
   .Name = i
   .Top = i * 40
   .Left = 30
   .Text = "Ciao " & i
  End With
Me.Controls.Add(lbl)
poi a fianco di questi mostrerò le corrispondenti textbox ecc ecc.
Una volta creati i campi necessari devo ciclare sui controlli contenuti 
nella form per capire cosa memorizzare nel db.
Sono sulla strada giusta o vi vengono in mente modi migliori?
grazie, ciao
Mauro

 Sono sulla strada giusta o vi vengono in mente modi migliori?
Tu vuoi fare un form dinamico per fare data entry, in cui textbox ed
altri controlli vengano popolati in base alle colonne della tabella che
si vuole modificare in quel momento, giusto?
In tal caso sei sulla strada giusta.
Nicola

 In tal caso sei sulla strada giusta.
Grazie !
ciao
Mauro

 selezionata nella tabella iniziale non in base alle colonne.
Si, ho usato un termine inesatto, ma intendevo "creati".
Noi facciamo esattamente così su un pezzo del nostro applicativo adibito
al data entry su tabelle create dinamicamente dall'utente.
Lavoriamo in .NET 2005, ma il concetto è lo stesso.
Nicola

 Lavoriamo in .NET 2005, ma il concetto è lo stesso.
Ottimo, grazie.
Ne approfitto ancora per una cosa se puoi ... ho un problema quando il 
numero di controlli è eccessivo ed eccede la dimensione del form in altezza.
Ho attivato sulla form AutoScroll a True, ma succede che nella form non 
riesco a scorrere verso il basso con il pulsantino nero a forma di 
freccia della barra di scorrimento verticale perchè quando ci vado sopra 
il mouse assume la forma a freccia diagonale per ridimensionare la finestra.
Se per scorrere verso il basso uso la barra funziona, ma mi "ridisegna 
male" la finestra nel senso che quelle tre linette diagonali in basso a 
dx che indicano la possibilità di fare il resize vengono ripetute tante 
volte in altezza.
Io l'aggiunta dei controlli la faccio nel form_load, immagino che il 
problema sia legato al fatto che quando lui crea la finestra non mette 
la barra di scorrimento verticale perche' non serve in quanto la 
finestra è vuota. Poi io aggiungo i controlli e la barra si sovrappone 
al controllo del ridimensionamento in qualche modo.
Ho già provato a fare un me.refresh() al termine della aggiunta dei 
controlli ma non funziona.
Avete avuto anche voi questo problema? Sai da cosa puo' dipendere e 
ancora meglio come si può correggere?
grazie, ciao
Mauro

 ancora meglio come si può correggere?
Su questo non saprei aiutarti... a noi non è mai capitato di avere così
tanti controlli da riempire un intero form a pieno schermo.
Posso consigliarti di ridimensionare i controlli in base a cosa devono
contenere (es una textbox per un char(3) può tranquillamente essere più
piccola di una per un char(50), per intenderci).
Poi puoi provare a mettere i controlli uno di fianco all'altro, fino a
riempire la larghezza del form e poi ricominci andando "a capo".
In questo modo puoi metterci mediamente una 50ina di textbox, label,
radio button, checkbox, ecc...
Nicola

 tanti controlli da riempire un intero form a pieno schermo.
Si, si, il problema riesco ad aggirarlo, ï¿œ solo che mi sarebbe piaciuto 
mettere i controlli tutti uno sotto l'altro (dovendoli generare in 
automatico ï¿œ anche il modo + facile).
Adesso vorrei capire come si risolve questo problema solo per curiositï¿œ, 
proverï¿œ ad aprire un nuovo post.
grazie, ciao
Mauro