Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342

    [VB.NET]AutoCompleteCustomSource importato e utilizzato per più TextBox

    Salve, non appena risolto un problema me ne si presenta uno nuovo

    Ho diverse TextBox (sulle 50), sfruttando l'AutoCompleteCustomSource volevo importare una serie di stringhe contenute in un file .txt, ci sono riuscito utilizzando l'IO.StreamReader ma essendo molte le TextBox (devo importare le stesse "voci" per tutte le TextBox) ci vorrebbe molto codice, volevo capire se c'è magari una soluzione più "intelligente":

    non sono riuscito ad attuare una cosa del tipo:
    dopo aver caricato l'AutoCompleteCustomSource nella TextBox1
    codice:
    TextBox2.AutoCompleteCustomSource = TextBox1.AutoCompleteCustomSource
    (in modo da caricarlo in una sola TextBox ed uguagliare le altre)

    non inoltre riuscito a fare una cosa del tipo:
    codice:
    Dim MySource As New AutoCompleteStringCollection()
                    MySource.AddRange(New String() {Application.StartupPath & "\file.txt"})
                    TextBox1.AutoCompleteCustomSource = MySource
                    TextBox2.AutoCompleteCustomSource = MySource
                    ecc, ecc...

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  2. #2
    Ciao
    Se le textbox sono all'interno del form puoi iterare la collection Controls del form, verificare che il tipo sia TextBox e qundi assegnargli l'origine per l'AutoCompleteCustomSource.

    Facci sapere ....
    Ciao

  3. #3
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Originariamente inviato da Jeremy75
    Ciao
    Se le textbox sono all'interno del form puoi iterare la collection Controls del form, verificare che il tipo sia TextBox e qundi assegnargli l'origine per l'AutoCompleteCustomSource.

    Facci sapere ....
    Ciao
    Ti dispiacerebbe farmi un esempio pratico

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  4. #4
    Uhhmm . . . . Non ci ha nemmeno provato?

    codice:
    For each control as control in me.controls
    If typeof control is textbox
    Directcast(control, textbox).autocompletecustomsource=mysource
    end if
    Next
    Facci sapere. . . .
    Ciao.

  5. #5
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Originariamente inviato da Jeremy75
    Uhhmm . . . . Non ci ha nemmeno provato?

    codice:
    For each control as control in me.controls
    If typeof control is textbox
    Directcast(control, textbox).autocompletecustomsource=mysource
    end if
    Next
    Facci sapere. . . .
    Ciao.
    In realtà non conoscevo la collection control e cercando su msdn non avevo capito come utilizzarla per porre fine al mio problema...

    comunque ho fatto alcune prove del tipo
    codice:
    Dim MySource As New AutoCompleteStringCollection()
                    MySource.AddRange(New String() {Application.StartupPath & "\iDAY\esercizi.txt"})
                    'TextBox2.AutoCompleteCustomSource = MySource
                    For Each control As Control In Me.Controls
                        If TypeOf control Is TextBox Then
                            DirectCast(control, TextBox).AutoCompleteCustomSource = MySource
                        End If
                    Next
                    TextBox2.AutoCompleteCustomSource = MySource
                    'MsgBox(MySource)
    non sembra funzionare, sbaglio io?

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  6. #6
    Sarebbe utile se dicessi cosa non funziona ..... ad ogni modo, molto probabilmente, il problema è che le tue textbox non sono contenute direttamente nel Form ma all'interno di un Panel, od un oggetto simile.
    Se fosse questo il caso ..... basterebbe semplicemente sostituire "Me." con il nome dell'oggetto contenitore.
    Se le textbox fossero invece contenute in più contenitori, allora la cosa cambierebbe, e bisognerebbe gestire il tutto all'interno del ciclo ForEach della collection Controls del Form semplicemente verificando il tipo di ogni controllo e, qualore fosse a sua volta un contenitore, controllare la collection Controls dell'oggetto corrente.

    Ad ogni modo, rimango a disposizione per ulteriori info.
    Facci sapere....
    Ciao

  7. #7
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Originariamente inviato da Jeremy75
    Sarebbe utile se dicessi cosa non funziona ..... ad ogni modo, molto probabilmente, il problema è che le tue textbox non sono contenute direttamente nel Form ma all'interno di un Panel, od un oggetto simile.
    Se fosse questo il caso ..... basterebbe semplicemente sostituire "Me." con il nome dell'oggetto contenitore.
    Se le textbox fossero invece contenute in più contenitori, allora la cosa cambierebbe, e bisognerebbe gestire il tutto all'interno del ciclo ForEach della collection Controls del Form semplicemente verificando il tipo di ogni controllo e, qualore fosse a sua volta un contenitore, controllare la collection Controls dell'oggetto corrente.

    Ad ogni modo, rimango a disposizione per ulteriori info.
    Facci sapere....
    Ciao
    No, le TextBox sono tutte dentro il Form, NON ci sono Panel e simili...

    comunque per non funziona intendo che non carica le stringhe del file .txt, ricordo che il file in questione è così strutturato:

    codice:
    Limone
    Arancia
    Pera
    Mela
    Banana
    Ananas
    Cocco

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  8. #8
    Ma quel problema non l'avevi già risolto tu?
    ci sono riuscito utilizzando l'IO.StreamReader ma essendo molte le TextBox
    Se scrivi
    codice:
    TextBox1.AutoCompleteCustomSource = MySource
    ..... funziona????

    Non farti strappare le informazioni con le pinze .... altrimenti facciamo Febbraio.
    Facci sapere....
    Ciao

  9. #9
    Utente di HTML.it L'avatar di fedrock
    Registrato dal
    Jun 2009
    residenza
    Milan
    Messaggi
    342
    Originariamente inviato da Jeremy75
    Ma quel problema non l'avevi già risolto tu?


    Se scrivi
    codice:
    TextBox1.AutoCompleteCustomSource = MySource
    ..... funziona????

    Non farti strappare le informazioni con le pinze .... altrimenti facciamo Febbraio.
    Facci sapere....
    Ciao
    Hai ragione grazie per la pazienza comunque...

    ho provato in questo modo:
    codice:
     Using SR As New IO.StreamReader(Application.StartupPath() & "\file.txt")
                        While SR.EndOfStream = False
                            Dim MySource As New AutoCompleteStringCollection()
                            MySource.AddRange(New String() {SR.ReadLine})
                            For Each control As Control In Me.Controls
                                If TypeOf control Is TextBox Then
                                    DirectCast(control, TextBox).AutoCompleteCustomSource = MySource
                                End If
                            Next
                        End While
                    End Using
    non va praticamente mi carica solo l'ultima riga del file .txt

    I SHOULD TELL YOU SOMETHING NEW:
    don't want you here.


  10. #10
    Il codice giusto è così:
    codice:
    Private MySource As New AutoCompleteStringCollection()
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Using SR As New IO.StreamReader(Application.StartupPath() & "\file.txt")
                While SR.EndOfStream = False
                    MySource.AddRange(New String() {SR.ReadLine})
                End While
            End Using
            For Each control As Control In Me.Controls
                If TypeOf control Is TextBox Then
                    DirectCast(control, TextBox).AutoCompleteCustomSource = MySource
                End If
            Next
        End Sub
    Prima di tutto perchè il tuo codice creava una nuova istanza dell'oggetto MySource ad ogni ciclo per la lettura del file ..... e secondo perchè la valorizzazione della classe AutoCompleteCustomSource di ogni textbox basta farla una volta sola(alla fine del ciclo While..Next)

    Facci sapere...
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.