Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    35

    [vb6]Listbox

    Salve, vorrei che da una listbox si potessero aggiungere degli oggetti ad un textbox
    tipo questo:
    Private Sub List1_Click()
    If List1.ListIndex = 0 Then
    txtAscii.Text = "1" & txt1.Text & "1"
    End If
    If List1.ListIndex = 1 Then
    txtAscii.Text = "2" & txt1.Text & "2"
    End If

    Quando si clicca sul primo oggetto della listbox l'oggetto 1 viene aggiunto alla textbox ma il problema è che quando si clicca sul secondo oggetto della listbox questo si aggiunge al primo, quindi nel textbox troverò 21text112. Io invece vorrei che cliccando sul secondo oggetto della listbox il primo non ci sia +, che venga sostituito dal secondo. Come fare?

  2. #2
    Utente bannato
    Registrato dal
    Mar 2007
    Messaggi
    190

    Controllo ListBox...

    Ciao "Backdown" sono "tuono"...

    Se ho capito bene... hai problemi con l'oggetto ListBox...

    Il tuo problema è che se clicchi sulla ListBox il Secondo elemento,
    sempre se inserito, in automatico e come se cliccasse prima il Primo poi il Secondo.

    Se è così potresti fare in DUE modi:

    Primo: Utilizzare Select in sostituzione di If
    codice:
    select case List1.listindex
    case is=0 'selezione Primo elemento
    txtAscii.Text = "1" & txt1.Text & "1"
    case is=1 'selezione Secondo elemento
    txtAscii.Text = "2" & txt1.Text & "2"
    case else 'TUTTI i rimanenti casi
    msgbox "prova a utilizzare altro !"
    end select
    Secondo: Eliminare i "danni" del Primo elemento
    codice:
    If List1.ListIndex = 0 Then
    txtAscii.Text = "1" & txt1.Text & "1"
    End If
    If List1.ListIndex = 1 Then
    rem elimina dall'oggetto txtascii il Primo e l'Ultimo carattere
    rem Mid estrae i caratteri dalla posizione "2" (dalla seconda) alla posizione "len(txtascii.text)-1" (fino alla penultima)
    txtascii.text=mid(txtascii.text,2,len(txtascii.text)-1) 
    txtAscii.Text = "2" & txt1.Text & "2"
    End If

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    35
    ciao tuono, grazie per la risposta.
    Ho provato con la prima soluzione che sembra + pulita e semplice, ma non va, contrinuano a sovrapporsi elemento 1 e 2, se si clicca nel primo elemento e poi nel secondo, il secondo si aggiungerà al primo!

    [quote]
    Private Sub List1_Click()
    Select Case List1.ListIndex
    Case Is = 0
    txtAscii.Text = "1" & txtAscii.Text & "1"
    Case Is = 1
    txtAscii.Text = "2" & txtAscii.Text & "2"
    End Select
    End Sub
    [quote]

    sbaglio qualcosa?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Guarda che nella tua prima domanda hai indicato

    txtAscii.Text = "2" & txt1.Text & "2"

    mentre adesso dici

    txtAscii.Text = "2" & txtAscii.Text & "2"

    E' chiaro che se usi sempre lo stesso txtAscii allora non fai altro che accumulare i dati ... ma inizialmente dicevi di usare due textbox diverse ...

    .. forse e' meglio che ci chiarisci (e ti chiarisci) le idee ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    35
    hai ragione, ho sbagliato... vorrei che venisse come ho postato nell'ultimo codice, cioè nello stesso textbox

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... scusa, cosi' non si capisce quello che vuoi fare ...

    Fai un esempio pratico di quello he vuoi ottenere ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    35
    Select Case List1.ListIndex
    Case Is = 0
    txtAscii.Text = "1" & txtAscii.Text & "1"
    Case Is = 1
    txtAscii.Text = "2" & txtAscii.Text & "2"
    End Select

    Quando si clicca sul primo elemento della lista box "1" si aggiungerà al txtAscii.Text, quando si clicca sul secondo elemento della list box il "2" si aggiungerò a txtAscii.Text ma "1" non ci sarà +.

    Il codice sopra era indicato da tuono se il risultato veniva messo su un'altra textbox, invece se voglio ke avvenga nella stessa textbox quel codice non va.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    35
    cioè così va:

    select case List1.listindex
    case is=0 'selezione Primo elemento
    txtAscii.Text = "1" & txt1.Text & "1"
    case is=1 'selezione Secondo elemento
    txtAscii.Text = "2" & txt1.Text & "2"
    case else 'TUTTI i rimanenti casi
    msgbox "prova a utilizzare altro !"
    end select
    ma così no:
    select case List1.listindex
    case is=0 'selezione Primo elemento
    txtAscii.Text = "1" & txtAscii.Text & "1"
    case is=1 'selezione Secondo elemento
    txtAscii.Text = "2" & txtAscii.Text & "2"
    case else 'TUTTI i rimanenti casi
    msgbox "prova a utilizzare altro !"
    end select
    perchè nel secondo cosa si avrà questo risultato: 21text12 mentre io voglio che se si clicca sul secondo elemento il primo non ci sia + e venga sostituito da quello cliccato.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quindi tu vuoi che sia

    1text11

    nel primo caso e

    2text12

    nel secondo?

    Se e' cosi', seppure non impossibile, mi sembra una cosa molto contorta ...

    Perche' non utilizzi una textbox di destinazione diversa da quella sorgente?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Backdown
    cioè così va:
    Ovviamente ... perche' utilizzi due texbox diverse come ti ho consigliato di fare ...

    Originariamente inviato da Backdown
    ma così no:
    Anche questo e' ovvio ... scrivendo sulla destinazione, non potrai piu' avere il valore originale ...

    perchè nel secondo cosa si avrà questo risultato: 21text12 mentre io voglio che se si clicca sul secondo elemento il primo non ci sia + e venga sostituito da quello cliccato.
    Ti ripeto ... e' una cosa che non ha molto senso ... se hai una informazione nel textbox che ti serve immutata in tanti momenti del programma, non puoi cambiarla e pretendere di ritrovarla dopo ...

    Stai sbagliando qualcosa nel tuo "algoritmo" ... ma a che ti serve tutto cio'?

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.