Newsgroup: it.comp.lang.visual-basic
Titolo: [DOTNET]Trovare una textbox

Esiste nelle windows form qualcosa di simile al
findcontrol("namecontrollo") aspnet per trovare una textbox senza dover
iterare tutta la collection?
Grazie!
-- 
Luigi Braccioforte
Wonderfulworld (50807) Italia V.181 | Seconda societą Ht quotata in borsa
Junior Manager della IHNF | Tessera #136 Club dei Mille
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
Se chiami me.controls("nomecontrollo").name viene restituito il nome
del controllo se esiste, altrimenti dà un errore che puoi gestire con
l'onerror quindi risolvi senza cicli.
Ciao
Piero

 l'onerror quindi risolvi senza cicli.
Magari, visto che siamo in .NET, anzichè un preistorico On Error, sarebbe 
il caso di utilizzare un blocco Try-Catch ;)
Ciao!
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca

 l'onerror quindi risolvi senza cicli.
Sicuro che funziona?
Credo che voglia l'indice del controllo non la proprietà name 
Grazie


 Credo che voglia l'indice del controllo non la proprietą name
Anche perchč non avrebbe molto senso... se sai gią il nome del controllo 
tanto vale usare la variabile.
Ciao 

 Ciao
Questo no perchè io ho la proprietà name in una variabile string quindi se
quello funzionasse sarebbe perfetto.
Mi spiego....nel campo tag di una txtbox che chiamo paperino metto degli
standard come ad esempio TOT=pippo+pluto
Pippo e pluto sono i name di altre txtbox.
Mi leggo il tag ed il risultato la devo mettere nella txtbox paperino.
Purtroppo sembra che non abbia altro modo per beccare papaerino che
iterare nella collection di txtbox.....:(


 Grazie
Funziona anche con il nome, a dire il vero se il nome e quello di un
vettore di oggetti la funzione da errore perche non viene restituito
l'oggetto ma il vettore, se sai di poter avere vettori magari prova ad
usare
questo codice, un po' elaborato ma funziona.
Dim obj1 As Object
Dim strName As String
On Error Resume Next
Set obj1 = Me.Controls("text1") 'cerco un oggetto di nome text1
If Err.Number <> 0 Then
  'significa che non esistono oggetti con quel nome
Else
  'significa che esistono oggetti con quel nome,
  'devo verificare se e un oggetto songolo o un vettore
  Err.Clear
  strName = obj1.Name
  If Err.Number <> 0 Then
    Err.Clear
    'esiste un vettore di oggetti con quel nome,
    'se conosci l'indice puoi testare l'esistenza dell'indice nel
vettore
    strName = obj1.Item(1).Name 'cerco se esiste text1(1)
    If Err.Number <> 0 Then
      'significa che non esistono oggetti con quel nome e indice
    Else
      'significa che esiste un oggetto con quel nome e indice
    End If
  Else
    'esiste un solo oggetto con quel nome
  End If
P.S.: non e specificato se e VB6 o .NET, io uso VB6 (come molti) e
consiglio con VB6, io ho e uso l'onerror.
Piero

 iterare nella collection di txtbox.....:(
Occhio che se la textbox è in un frame/panel/contenitore devi iterare 
ricorsivamente.
Sicuro che non ci sia una soluzione migliore?
Ciao 

me.controls contiene anche gli oggetti con parent diverso dalla form,
basta che sia dentro la form.
Io ho fatto un esempio con la proprietà Name solo perchè so che c'è
in tutti i controlli, in realtà la uso per "testare" l'esitenza del
controllo.
Ciao
Piero

 consiglio con VB6, io ho e uso l'onerror.
Non l'ho specificato nel messaggio ma nel titolo del 3d comunque è 
dot.net
:)) comunque ho trovato questo....
Members of the Controls collection could be referenced using either the
index or the name of the control;(VB6) the ControlCollection class only
supports the index(dot net).
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vxconchangestocontrolscollectioninvisualbasicnet.asp


 basta che sia dentro la form.
Tu parli di VB6, l'OP parla di VB.Net.
Non sono uguali.
Ciao
--
Reporting tool: 
http://www.neodatatype.net
Qualunque mentecatto può scrivere codice che un computer possa capire.
I buoni programmatori scrivono codice che gli uomini possano capire.
[Martin Fowler]

Scusate il mio errore, non avevo visto il titolo completo :-$.
Mi spiace per la confusione che ho fatto, il codice VB6 però funziona
se qualcuno ne avesse bisogno (ma forse la domanda è stata posta
perchè in .NET è più complesso... non so).
Ciao
Piero