Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    [VB6]: Scrivere da Text a List

    Ciao ragazzi ho una richiesta un po' strana (..forse)
    Io ho una Text1 Multiline = True e la Scrollbars selezionata per una scrittura in verticale.
    Quello che vorrei fare è trasferire ogni riga della Text nelle colonne di una List1, mi spiego meglio facendo un esempio:

    Nella prima riga (Text1) scrivo "Pippo 1"
    Nella seconda riga (Text1) scrivo "Pippo 2"

    Il testo della prima riga deve corrisponedere al testo della prima colonna della List1 etc etc

    Spero di essermi spiegato abbastanza decentemente
    vrclaudio

  2. #2
    ma c'è un invio fra "pippo 1" e "pippo 2" oppure è semplicemente finito lo spazio della prima riga della textbox e quindi ha scritto pippo 2 nella seconda?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    ...

    Ciao KataKlism2002
    non cè nessun invio mi piacerebbe che sia in automatico o con l'evento Change
    grazie mille

  4. #4
    dubito tu possa farlo, quella è in realtà una riga unica, mandata a capo solo perchè le dimensioni della textbox sono quelle(ma il ritorno a capo è solo visivo, non ci sono eventi che lo segnalino...). Se spieghi meglio quello che vuoi fare (in generale) magari c'è una soluzione migliore...


    in alternativa adottare un metodo complicato in cui cerchi di capire quanto è lunga in pixel il testo inserito nella textbox (in base a font e dimensione carattere, credo che con l'oggetto graphics si possa fare) e stabilire da solo se ci sono stati dei ritorni a capo... ma non mi imbarcherei in una soluzione del genere nemmeno se mi pagassero.

  5. #5
    La listbox non permette questo tipo di utilizzo, puoi avere al massimo che ad ogni riga corrisponda una nuova riga della listbox. Puoi in alternativa utilizzare il controllo DataGrid, ma la cosa si fa abbastanza più complicata. Comunque, con la listbox, puoi controllare nell'evento Change della textbox e fare una split sulla proprietà Text sul carattere vbCrLf (a capo) e quindi prendere l'ultimo valore valoresplittato(Ubound(valoresplittato)) e quindi aggiungerlo alla listbox.

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    ...

    ciao a tutti
    in tanto grazie a tutti, a questo punto vi dico che puo' andare bene anche un pulsante per "copiare" le righe della text nelle colonne della List.
    Inoltre aggiungo che i testo che vengono inseriti nelle righe della Text sono di poche righe quindi non andrebbero a caricare eccessivamente le colonne della List


    Grazie mille
    vrclaudio

  7. #7
    Come vedi è molto semplice:

    codice:
    Private Sub Text1_Change()
        On Error Resume Next
        Dim app() As String
        
        app = Split(Text1.Text, vbCrLf)
        List1.Clear
        
        For i = 0 To UBound(app)
            List1.AddItem app(i)
        Next
    End Sub
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  8. #8
    dubito chipdb che il tuo codice funzioni visto che claudio ha scritto 2 post fa:

    Originariamente inviato da vr-claudio
    non cè nessun invio
    a meno che tu non voglia annullare il "non" con "nessun" e lasciare "cè invio"

  9. #9

    Re: [VB6]: Scrivere da Text a List

    Originariamente inviato da vr-claudio
    Quello che vorrei fare è trasferire ogni riga della Text nelle colonne di una List1, mi spiego meglio facendo un esempio:

    Nella prima riga (Text1) scrivo "Pippo 1"
    Nella seconda riga (Text1) scrivo "Pippo 2"

    Il testo della prima riga deve corrisponedere al testo della prima colonna della List1 etc etc
    Questo mi pare abbastanza esplicativo sul fatto che CI DEBBA PER FORZA ESSERE un invio (o comunque un carattere che faccia da suddivisione righe) visto che a dimensioni normali, scrivere "Pippo 1" non ti occupa una riga intera a meno che non hai una textbox di dimensione 20px ed in quel caso "Pippo" starebbe comunque sulla prima riga e 1 andrebbe a capo... Comunque, la cosa migliore in questo caso sarebbe mettere un carattere o una stringa di suddivisione che permetta di fare questo (codice che ho messo sopra), altrimenti sì che si deve fare con la larghezza del font e direi che non è proprio il caso.

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    MILLE GRAZIE

    Originariamente inviato da chipdb
    Come vedi è molto semplice:

    codice:
    Private Sub Text1_Change()
        On Error Resume Next
        Dim app() As String
        
        app = Split(Text1.Text, vbCrLf)
        List1.Clear
        
        For i = 0 To UBound(app)
            List1.AddItem app(i)
        Next
    End Sub
    Era proprio quello che cercavo, ti sono debitore, e ringrazio anche tutti gli altri per i consigli preziosi
    vr-claudio

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.