|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 38
|
[C#] textbox
Ciao a tutti,
ho un problema con i textbox in C#. E' possibile modificare "contemporaneamente" le proprietà di più textbox con una semplice istruzione? Mi spiego meglio, dato che foreach sui TextBox non funziona esiste una soluzione simile a: Codice:
foreach(TextBox t in GroupBox1)
{
t.ReadOnly = true;
}
Grazie in anticipo, Claudio |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Ci eri andato vicino :
Codice:
foreach (TextBox T in groupBox1.Controls)
{
T.ReadOnly = true;
}
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ovvio che si, basta che carichi tutti i textbox in un array.
Oppure puoi accedere a tutti i figli del form di tipo textbox e iterare su quelli se hai creato tutto dal designer. più facile a farsi che a dirsi Codice:
var textboxes = GroupBox1.Controls.OfType<Control>().Where(c => c is TextBox);
foreach (TextBox textbox in textboxes)
{
textbox.Text = "Ciao";
}
__________________
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 38
|
Grazie mille a entrambi, tra l'altro non conoscevo l'uso di var...
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 38
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
col mio codice funziona anche se ci sono altri controlli, dato che agisce solo su quelli di tipo textbox.
__________________
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Codice:
var textboxes = GroupBox1.Controls.OfType<TextBox>();
foreach (TextBox textbox in textboxes)
{
textbox.Text = "Ciao";
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Se è previsto che groupBox1 possa contenere altri controlli, si può adattare facilmente, senza sprecare inutili Array di appoggio : Codice:
foreach (Control C in groupBox1.Controls)
{
if (C is TextBox) (C as TextBox).ReadOnly = true;
}
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Non sono array di appoggio.
Sono risolti tutti con la yield return al volo.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Quella sintassi restituisce un IEnumerable<TextBox>, dove viene in pratica eseguito proprio quanto da te scritto, e viene ciclato sopra di esso. Non c'e' allocazione di memoria in mezzo, non c'e' alcuna "new" eseguita. E piu' simile ad una pipeline.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
- Tra tutti i controlli di groupBox1 prendi il sottoinsieme "TextBox". - Su tutte le textbox del sottoinsieme "TextBox" fai ReadOnly=true. quando posso dire : - Tra tutti i controlli di groupBox1, se c'è una TextBox, fai ReadOnly=true. Poi, la mia convinzione rimane questa sul caso attuale. Ci saranno sicuramente casi in cui l'altra tecnica potrà essere vantaggiosa, se non addirittura indispensabile... |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
a me risulta + leggibile quella con LINQ...
E comunque gli if vanno sempre eliminati quando possibile.
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:11.




















