Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20
  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    Neanche così sembra andare, non si smuove da quel che ho come risultato.
    Quindi mi par di capire di avere un qualche comportamento anomalo.

    Sperando possiate darmi una mano vi posto prima le proprietà della mia listview impostate da form.
    E poi il codice in cui la listview è interessata.
    Ho messo le dichiarazioni, il load del form che la contiene e la funzione che la popola (volevo cancellare il superfluo, ma a questo punto cerchiamo di capire cos'è che non va come dovrebbe).

    Proprietà della listview1:
    http://imageshack.us/photo/my-images...magineacm.png/


    codice:
    Dim Errorgroup As New ListViewGroup("Errori")
    Dim Rightgroup As New ListViewGroup("Conversioni riuscite")
    Dim Othergroup As New ListViewGroup("Altri")
    'Dichiarazioni gruppi
    
    Public Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            popola()
    end sub
    
    Private Sub popola()
    ListView1.TileSize = New Size(560, 15)
    
    If My.Computer.FileSystem.FileExists(Application.StartupPath & "\Error Message.txt") Then
                If My.Computer.FileSystem.GetFileInfo(Application.StartupPath & "\Error Message.txt").Length.ToString = 0 Then
                    My.Computer.FileSystem.DeleteFile(Application.StartupPath & "\Error Message.txt")
                    popola()
                End If
    
                Dim index As Integer = -1
                Dim sr As New IO.StreamReader(Application.StartupPath & "\Error Message.txt")
                While Not sr.EndOfStream
                    Dim temp As String = sr.ReadLine
                    If InStr(temp, "Errore") Then
                        index = index + 1
                        Dim itemp As New ListViewItem With {.Name = "itemp" & index}
                        itemp.ForeColor = Color.Red
                        itemp.ToolTipText = "Doppio Click per aprire il percorso del file"
                        itemp.Text = temp
                        itemp.Group = Errorgroup
                        ListView1.Items.Add(itemp)
                    ElseIf InStr(temp, "Conversione riuscita!") Then
                        index = index + 1
                        Dim itemp As New ListViewItem With {.Name = "itemp" & index}
                        itemp.ForeColor = Color.Green
                        itemp.ToolTipText = "Doppio Click per aprire il percorso del file"
                        itemp.Text = temp
                        itemp.Group = Rightgroup
                        ListView1.Items.Add(itemp)
                    Else
                        index = index + 1
                        Dim itemp As New ListViewItem With {.Name = "itemp" & index}
                        itemp.ForeColor = Color.Black
                        itemp.ToolTipText = "Doppio Click per aprire il percorso del file"
                        itemp.Text = temp
                        itemp.Group = Othergroup
                        ListView1.Items.Add(itemp)
                    End If
    
                End While
                sr.Close()
                sr.Dispose()
                Dim div As New ListViewItem With {.Name = "itemp" & index}
                div.ForeColor = Color.Blue
                div.ToolTipText = "Esecuzione successiva"
                Dim a As String = "_"
                For i As Integer = 0 To 300
                    a = a + "_"
                Next
                div.Text = a
                ListView1.Items.Add(div)
            Else
                Dim empty As New ListViewItem With {.Name = "Empty"}
                empty.Text = "Non ci sono log di errori al momento."
                ListView1.Items.Add(empty)
            End If
    
    
    end sub


    Spero di riuscire a risolvere, grazie per la pazienza!

    @ShaleN
    Non hai un link a una guida per i controlli personalizzati? cercavo in rete ma nulla di interessante. Grazie

  2. #12
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Il secondo metodo che ho postato funziona con View = Details -> Mi sembra sia quella l'unica vista che permette di visualizzare le colonne.

    In quanto alle guide:

    In windows Form basta che scrivi una tua classe che eredita da Control (o comunque da una classe nella cui gerarchia compare control). Poi ridefinisci tutti i metodi che ti servono (OnDraw, OnResize ecc), gestisci tuti gli eventi di cui hai bisogno e le varie proprietà.

    In WPF, guarda qui o continua a cercare su Google.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #13
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    Okkkkk finalmente ce l'ho fatta!!
    Con la visualizzazione details e qualche modifica ce l'ho fatta!.
    Ora però aggiustiamo il tiro, mi compare lo scroll orizzontale, ma non capisco come mai comunque a un certo punto mi tronchi la stringa.
    C'è una qualche lunghezza massima di stringa? Nel caso metterei un controllo, però per evitare sorprese guardavo come si comportava con una stringa (a caso) molto lunga.

    Ho iterato su tutti gli item regolando la larghezza colonna in base all'item più lungo, però poi me lo tronca poco dopo.

    Per esempio inserendo (mi scuso per l'idiozia della stringa):
    codice:
    fsfssssssssssssssssssssssssssssssssssssssssssssssssss fffffffffffffffffffffff shofhdo dfhoshdfo odohfoh odofhprod dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd dpfjpdsp dgjpddddddddddddddddddddddddddddddddddddd[qui]dddddddd pdppppppppppppppppppppppppppgjp dpjgpsjdgpjdsp pddddddddddddddddddd
    Me la tronca dove ho messo [qui].

    Ho impostato qualcosa di troppo stretto? Cosa?
    La stringa più lunga di 259 caratteri non può essere?

    Grazie ancora!

  4. #14
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Mostra tutto il codice che usi per ridimensionare le colonne. Comunque mi sembra che ci sia un massimo, anche se ora non mi ricordo bene.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  5. #15
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    Ok, allora il codice che lavora sulla listview creata da form, si chiama listview1 vista dettagli ecc, nei post precedenti ho mostrato lo screenshoot delle proprietà, ho cambiato solo la vista che ora è details.

    In dichiarazione ho:
    codice:
    Dim colonna As New Windows.Forms.ColumnHeader
    codice:
    Private Sub popola()
    Dim div As New ListViewItem
            div.ForeColor = Color.Blue
            div.ToolTipText = "Esecuzione successiva"
            Dim a As String = "_"
            For i As Integer = 0 To 180
                a = a + "_"
            Next
            div.Text = a
            Dim maxstring As String = a
    
            If My.Computer.FileSystem.FileExists(Application.StartupPath & "\Error Message.txt") Then
                If My.Computer.FileSystem.GetFileInfo(Application.StartupPath & "\Error Message.txt").Length.ToString = 0 Then
                    My.Computer.FileSystem.DeleteFile(Application.StartupPath & "\Error Message.txt")
                    popola()
                End If
    
                Dim index As Integer = -1
                Dim sr As New IO.StreamReader(Application.StartupPath & "\Error Message.txt")
                While Not sr.EndOfStream
                    Dim temp As String = sr.ReadLine
                    If InStr(temp, "Errore") Then
                        index = index + 1
                        Dim itemp As New ListViewItem With {.Name = "itemp" & index}
                        itemp.ForeColor = Color.Red
                        itemp.ToolTipText = "Doppio Click per aprire il percorso del file"
                        itemp.Text = temp
                        itemp.Group = Errorgroup
                        ListView1.Items.Add(itemp)
                    ElseIf InStr(temp, "Conversione riuscita!") Then
                        index = index + 1
                        Dim itemp As New ListViewItem With {.Name = "itemp" & index}
                        itemp.ForeColor = Color.Green
                        itemp.ToolTipText = "Doppio Click per aprire il percorso del file"
                        itemp.Text = temp
                        itemp.Group = Rightgroup
                        ListView1.Items.Add(itemp)
                    Else
                        index = index + 1
                        Dim itemp As New ListViewItem With {.Name = "itemp" & index}
                        itemp.ForeColor = Color.Black
                        itemp.ToolTipText = "Doppio Click per aprire il percorso del file"
                        itemp.Text = temp
                        itemp.Group = Othergroup
                        ListView1.Items.Add(itemp)
                    End If
    
                    If temp.Length > maxstring.Length Then
                        maxstring = temp
                    End If
    
                End While
                sr.Close()
                sr.Dispose()
    
                div.Name = "itemp" & index
                ListView1.Items.Add(div)
            Else
                Dim empty As New ListViewItem With {.Name = "Empty"}
                empty.Text = "Non ci sono log di errori al momento."
                ListView1.Items.Add(empty)
            End If
    
            ListView1.Columns(colonna.Index).Width = Graphics.FromHwnd(Me.Handle).MeasureString(maxstring, ListView1.Font).Width
    
        End Sub
    
    
    Public Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ListView1.Columns.Add(colonna)
            colonna.Text = "Colonna 1"
    
            popola()
    End sub

    Questo è quanto lavora sulla listview, giusto per non omettere nulla.
    Non capisco perché me le tronchi però!
    Ho cercato la lunghezza massima del tipo stringa, mi pare sia MOOOOOLTO più elevata della stringa che io ho scritto.

  6. #16
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    Nessuna idea?

  7. #17
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    OK risolto!!

    Ho modificato qua e la facendo prove per poi rivoluzionare tutto e rimettere tutto ocm'era, non si sa come ne perché ma funziona.
    Calcolo la stringa più lunga fra gli items e la colonna do quella lunghezza, compare in automatico la barra orizzontale di scroll.

    Insomma tutto risolto funziona, ora ho una listview perfettamente uguale ad una combobox

    Rimarra solo da cercare di far controlli personalizzati per inserire all'interno non tristi righe tipo label ma veri controlli come button o qualunque altra cosa
    Per ora va bene così

    Grazie!

  8. #18
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    L'unica che mi viene in mente: rendi la listview ownerdraw e disegna ogni item da te facendo uso della casse Graphics.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  9. #19
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    Originariamente inviato da inconsapevole
    OK risolto!!

    Ho modificato qua e la facendo prove per poi rivoluzionare tutto e rimettere tutto ocm'era, non si sa come ne perché ma funziona.
    Calcolo la stringa più lunga fra gli items e la colonna do quella lunghezza, compare in automatico la barra orizzontale di scroll.

    Insomma tutto risolto funziona, ora ho una listview perfettamente uguale ad una combobox

    Rimarra solo da cercare di far controlli personalizzati per inserire all'interno non tristi righe tipo label ma veri controlli come button o qualunque altra cosa
    Per ora va bene così

    Grazie!
    Rieccomi qui!!
    Riesumiamo questa discussione perché, come dicevo rivoluzionando il tutto funzionò senza motivo apparente, infatti continuando a lavorarci non funziona più di nuovo! XD
    Non ho cambiato nulla del codice di sostanziale e nessun metodo funziona

    Insomma con stringhe molto lunghe negli items, il testo viene troncato e non ho modo di visualizzarlo tutto.
    Ho poi trovato questo in internet:
    http://support.microsoft.com/kb/321104/it

    Nessuno ha idee su come fare? Vorrei vedere tutto il testo.

  10. #20
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    37
    Nessuno sa come posso visualizzare testo lungo negli item di una listview?
    Qualche link a progetti di overdraw? Non so come si faccia

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.