davide89 (Normal User)
Newbie
Messaggi: 5
Iscritto: 12/12/2006
|
ciao a tutti, ho un problema, devo gestire l'evento lostfocus in 10 combo, queste combo sn delle matrici ovvero combo(0), combo(1) ecc...
Quando clicco su una combo e scelgo un oggetto dalla sua lista, vorrei che poi nelle altre combo non risultasse l'oggetto selezionato.
ES: nella combo(0) scelgo "Inter", vorrei poi che nella altre 9 combo "inter" non ci fosse più.
Grazie
|
|
Maffo23 (Ex-Member)
Pro
Messaggi: 63
Iscritto: 14/12/2006
|
ma vuoi eliminarlo?
se si,fai un ciclo FOR che va da 0 a N,se la combo è
quella con "MILAN" non fare niente,altrimenti cancellalo!!
facile no!!
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
io quel problema sono riuscito a risolverlo...ma nn riesco a risolverne un altro: se x esempio cambio la Text della Combo, ke aveva già un valore quel valore non riesco a metterlo nelle altra combo..(faccio il vostro esempio con le squadre di calcio: in una combo ho "milan" come text ..e negli elenki delle altre "milan", nn c'è..ma se io quel "milan" lo sostituisco con un altro valore..esempio "inter", devo far ritornare "milan" negli elenchi delle altre combo)..cm si fa?
e poi...c'è un comando delle combo ke fa si ke le parole degli elenke vengono automaticamente disposte in ordine alfabetico?
grazie
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
oops..scusate era il mio primo messaggio e nn mi sn presentato..cmq piacere ho 17 anni e vengo da milano.
|
|
P4p3r0g4 (Member)
Guru
Messaggi: 1319
Iscritto: 29/12/2006
|
crei un primo vettore di stringhe con tutti i dati poi a ciascuna combo a ogni cambiamento associ un evento di riscrittura dei dati che equivale a quelli del vettore ideale meno quelli selezionati delle combo.
semplice no?
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
no...nn è così semplice...
non è ke puoi spiegare meglio x favore?
grazie
Ultima modifica effettuata da zubizarreta il 22/01/2007 alle 16:47 |
|
P4p3r0g4 (Member)
Guru
Messaggi: 1319
Iscritto: 29/12/2006
|
ok mi spiego.
poniamo caso che abbiamo sei combo e 10 opzioni(A,B,C,D,E,F,G,H,I,L).
avremmo un vettore di stringhe chiamato non so, valore(1 to 10) che contiene in 1 A in 2 B ecc
di default diamo alla prima combo A (quindi a combo(1) va valore(1)) alla seconda combo B ecc
poi cosa andrà nella tendina?
andranno tutti i valori di valore(1 to 10) meno quelli già utilizzati più quello proprio nella combo
riassumendo
in combo(1) ci sarà A+(GHIL)
in combo(2) ci sarà B+(GHIL)
in combo(3) ci sarà C+(GHIL)
in combo(4) ci sarà D+(GHIL)
in combo(5) ci sarà E+(GHIL)
in combo(6) ci sarà F+(GHIL)
quando cambio un valore in una combo cosa accadrà?
dovro richiamare una procedura di ricalcolo delle tendine che sarannno sempre tutti i valori di valore(1 to 10) meno quelli già utilizzati più quello proprio nella combo.
se non capisci ancora posta che provo a fare un abbozzo di codice.
|
|
zubizarreta (Normal User)
Rookie
Messaggi: 59
Iscritto: 21/01/2007
|
sta volta piu o meno ho capito, ed era qll ke mi hanno suggerito anke oggi a scuola...sl ke nn so proprio come farlo...se magari mi puoi scrivere qlch riga di codice (please): io t dico qst:
ogni volta ke cambio una combo il prgramma mi entra nell'evento combo_click (index as integer)..e qui fa qst:
1-con un ciclo mi copia dal file principale (qll ke ha tutte le squadre all'inizio) tutte le squadre ke risultano diverse da quella ke ho messo nella combo ( e ste squadre me le copia in un altro file)..;
2-poi mi riporta le squadre rimaste nel file principale(aaa=file princ.);
3-(ke penso kon il tuo metodo dovrò togliere) mi va a cancellare da ogni lista di combo (solo quelle con text vuota, [xke se no mi succede un kasino)) la squadra ke nn ha scritto all'inizio sul file....;dico solo qll kon text vuote xke io elimino quella squadra tramite la posizione nella lista, ed è posibile ke "prelevando dalla lista una squadra" (ke poi si toglie dlle liste delle altre) puo cambiare la posizione delle squadre nella lista e quindi una squadra già inserita me la cancella ...
tt kiaro?..se nn hai capito kiedi pure ....grazie..
Ultima modifica effettuata da zubizarreta il 22/01/2007 alle 19:30 |
|
P4p3r0g4 (Member)
Guru
Messaggi: 1319
Iscritto: 29/12/2006
|
è commentato. copia e incolla in vb per vedere meglio
Codice sorgente - presumibilmente VB.NET |
Option Explicit Dim Valore(1 To 21) As String 'valore sono i valori totali Dim Cmb(1 To 10) As String 'indica che valore c'è nella combo Dim X As Integer: Dim Y As Integer: Dim Z As Integer 'tre variabili Private Sub Form_Load() 'alla partenza For Y = 1 To 10 Combo(Y).Clear 'svuota le combo Next Y For X = 1 To 21 Valore(X) = Chr(64 + X) 'riempile con..(qua ho messo le lettere dell'alfabeto) Next X For Y = 1 To 10 Cmb(Y) = Valore(Y) 'cosa c'è nella combo? va in cmb(Y) Combo(Y).Text = Cmb(Y) 'Vedi il valore in facciata Next Y Call tendina 'vai allevento delle tendine End Sub Private Sub Combo_click(Index As Integer) 'al variare delle combo Z = Index 'metti in z che combo non devo toccare(altrimenti salta lo scroll) For X = 1 To 21 If Combo(Index).Text = Valore(X) Then Cmb(Index) = Valore(X) ' identifica in cosa è camiata la combo End If Next X Call tendina End Sub Private Sub tendina() For Y = 1 To 10 If Not Y = Z Then 'tranne la combo da non toccare (quella con y = z) Combo(Y).Clear 'pulisci tutte le tendine End If Next Y For X = 1 To 21 'per tutti i valori totali For Y = 1 To 10 'se in una combo appare il valore(x) If Cmb(Y) = Valore(X) Then If Not Y = Z Then 'e quella combo posso toccarla Combo(Y).AddItem Valore(X) 'aggiungi solo a quella combo quel valore Combo(Y).Text = Cmb(Y) 'e rifagli la facciata End If GoTo NxtX 'poi passa alla x successiva End If Next Y ' se invece poi arrivare a questo punto quindi For Y = 1 To 10 'non c'è nessuna combo con questo valore If Not Y = Z Then 'se non è la combo da non toccare Combo(Y).AddItem Valore(X) 'allora aggiungi il valore End If Next Y NxtX: Next X End Sub
|
Ultima modifica effettuata da P4p3r0g4 il 23/01/2007 alle 16:00 |
|