Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Accesso a controlli usando il nome
Forum - C# / VB.NET - Accesso a controlli usando il nome

Avatar
Tommaso.n (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/02/2008

Segnala al moderatore
Postato alle 0:02
Giovedì, 28/02/2008
Questo topic è stato chiuso dal moderatore

Intanto vorrei salutare tutti visto che questo è il mio primo post qui :)
Poi vorrei ringraziare Piero perchè con la sua guida mi ha aiutato a entrare nel mondo della programmazione col vb.net ;)

Premetto che le mie uniche esperienze di programmazione risalgono a circa 15 anni fa col Turbo Pascal, quindi abbiate pietà se dico castronerie!

Ed ora vi spiego il mio problema:

Ho una serie di textbox contenute in un groupbox (GroupBox1) che è contenuto a sua volta in un tabcontrol (TabControl1). Il nome di ogni textbox differisce solo per il numero finale: txt11, txt12, txt13, ecc.

Nel programma riesco a modificare la proprietà text di ogni textbox con questo codice:

Codice sorgente - presumibilmente VB.NET

  1. ' p, s e a(6) sono variabili byte definite precedentemente
  2. ' in questo caso p = 1
  3. for i as byte = 1 to 7
  4.     TabControl1.Controls("GroupBox" & p).Controls("txt" & p & i).Text = CStr(a(i - 1))
  5. next



Il problema sorge quando devo andare a leggere la proprietà Value di una serie di numericUpDown (num11, num12, num13, ecc.) che si trovano nello stesso groupbox.

Con questo codice:

Codice sorgente - presumibilmente VB.NET

  1. ' a(6) è un'array di Byte
  2. ' in questo caso p = 1
  3. for i = 1 to 7
  4.     a(i - 1) = TabControl1.Controls("GroupBox" & p).Controls("num" & p & i).Value
  5. next



Mi dice:

'Value' non è un membro di 'System.Windows.Forms.Control'. (BC30456)

Dov'è che sbaglio? :(

Ultima modifica effettuata da Tommaso.n il 28/02/2008 alle 0:05
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:16
Giovedì, 28/02/2008
Prima di rispondere, vorrei precisare che la guida di questo sito è stata scritta da me... Sai com'è, ci tengo che certe cose vengano dette :D

In effetti, la classe control non espone il membro Value, ma, essendo tu sicuro di richiamare tutti NumericUpDown, puoi convertire il controllo in un NumericUpDown con gli operatori di Cast (CType e DirectCast). Ecco un esempio:
Codice sorgente - presumibilmente VB.NET

  1. ' a(6) è un'array di Byte
  2. ' In questo caso p = 1
  3. For i = 1 To 7
  4.     a(i - 1) = DirectCast(TabControl1.Controls("GroupBox" & p).Controls("num" & p & i), NumericUpDown).Value
  5. Next


PM
Avatar
Tommaso.n (Normal User)
Newbie


Messaggi: 2
Iscritto: 27/02/2008

Segnala al moderatore
Postato alle 9:21
Venerdì, 29/02/2008
Grazie per la risposta e grazie per la guida :k:

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:44
Venerdì, 29/02/2008
Grazie a te per aver postato correttamente questa domanda: finalmente qualcuno che è preciso nell'esporre la situazione! Hai scritto le circostanze, esposto il codice e provveduto a riportare l'errore: risultato, risposta in un solo post. Così mi piace.

PM