PDA

View Full Version : [VB] caricare dei nomi dal file sul controllo combobox


first register
22-08-2009, 17:52
Vorrei riorganizzare i bottoni di un applicazione inserendo i loro nomi (le caption) dentro un unico file che viene aperto al Form Load ed inserito in una combobox.

Per fare questo ho pensato di creare un modulo contenente una variabile da utilizzare per estrarre i i singoli nomi dal file.
Ora il problema è come associare il nome contenuto nel file alla combobox... ??

la proprietà Additem funziona con le listbox ma con le combobox non riesco ad inserire i nomi estratti. qualche consiglio ?

MarcoGG
22-08-2009, 19:42
Ma veramente il metodo AddItem è disponibile anche per le ComboBox :

List1.AddItem "item"

Combo1.AddItem "item"

No ? :stordita:

first register
23-08-2009, 16:19
Hai ragione, il codice che ho utilizzato per caricare la combobox è questo:


dim nome as string
Open "c:\filenomi.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, nome
Combo1.AddItem nome
Loop
Close #1

Ora i dati sono caricati sulla combobox, il punto è che non riesco ad utilizzare la combobox come fosse un menu a tendina.
Ad esempio cliccando sulla prima riga della combobox, vorrei richiamare la procedura#1, sulla 2 la procedura n#2 etc...

MarcoGG
23-08-2009, 22:20
Ora i dati sono caricati sulla combobox, il punto è che non riesco ad utilizzare la combobox come fosse un menu a tendina.
Ad esempio cliccando sulla prima riga della combobox, vorrei richiamare la procedura#1, sulla 2 la procedura n#2 etc...

Forse perchè stai usando l'evento _Change(). Prova invece con _Click(), e poi con una semplice Select Case associ le voci alle procedure da lanciare :

Private Sub Combo1_Click()

Select Case Combo1.Text

Case "nome1"
'Procedura#1

Case "nome2"
'Procedura#2

'...

Case Else
'...

End Select

End Sub

Inoltre controlla che la proprietà della Combo "Style" sia su "Dropdown List".

;)

first register
24-08-2009, 14:48
Forse perchè stai usando l'evento _Change(). Prova invece con _Click(), e poi con una semplice Select Case associ le voci alle procedure da lanciare :

Private Sub Combo1_Click()

Select Case Combo1.Text

Case "nome1"
'Procedura#1

Case "nome2"
'Procedura#2

'...

Case Else
'...

End Select

End Sub

Inoltre controlla che la proprietà della Combo "Style" sia su "Dropdown List".

;)

:doh: :D :D
Si di default VB visualizza l'evento "change" ora ho messo su "clic" e funziona :D

Poi ho inserito un blocco select case, ma avrei dovuto riscrivere il nome dei menu anche nel codice e per poi associarli alle singole procedure, per evitare questo ho inserito i nomi dei menu nel file utilizzando gli stessi nomi anche per le procedure e poi li ho utilizzati con la proprietà Combo1.text .

dim nomeprocedura as string
nomeprocedura = combo1.text

call nomeprocedura

In questo modo cliccando sulla combobox viene richiamata la procedura che ha lo stesso nome del menu a tendina.

Grazie
:)