Oppure

Loading
07/01/11 21:48
dedalux
Scusate ma non so nemmeno che titolo mettere, il problema è il seguente
avendo la necessità di far prendere all'ultima colonna di una listview tutto lo spazio rimasto ho implementato una ExtendedListView che quando disegna le colonne chiama questo metodo,

        Public Sub FillLastColumn()
            If Me.View IsNot Nothing Then
                If TypeOf Me.View Is GridView Then
                    Dim gv As GridView = Me.View
                    Dim gvccw As Double
                    'somma la larghezza effettiva di tutte le colonne tranne l'ultima
                    '---> qua la Messagebox
                    For i = 0 To gv.Columns.Count - 2
                         '---> o qua dentro
                         gvccw += gv.Columns(i).ActualWidth
                    Next
                    'e la sottrae alla larghezza effettiva della listview
                    Dim fcw As Double = (Me.ActualWidth - gvccw) - 6 'il 6 sarebbe il bordo della barretta che permette il resizing della colonna
                    If fcw >= 0 Then
                        gv.Columns.Last.Width = fcw
                    Else
                        gv.Columns.Last.Width = 0
                        gv.Columns.Last.Width = Double.NaN
                    End If
                End If
            End If
        End Sub


il problema è che il risultato cercato lo ottengo solo se inserisco
Messagebox.Show("faccio apparire una mb")

dove ho messo i commenti (non ho provato a metterla in altri punti del codice...)

cioè se creo una sorta di pausa (credo)

potreste aiutarmi a capire perchè? E' tutto il giorno che sbatto la testa sul portatile

grazie in anticipo :k:
Ultima modifica effettuata da dedalux 07/01/11 21:53
aaa
08/01/11 1:09
HeDo

probabilmente perchè, quando viene chiamata FillLastColumn, il controllo non ha ancora creato le colonne, oppure non le ha ancora inizializzate.

quella procedura va chiamata dopo che il controllo è stato completamente inizializzato, e per questo c'è un evento apposta.
aaa
08/01/11 12:08
dedalux
:0 credevo che OnInitialized venisse generato solo alla creazione del controllo

comunque avendo anche altre funzionalità che si intrecciano, ho dovuto optare per un UpdateLayaout(), solo che come performance fa schifo.

Per fortuna su internet ho trovato un progetto molto carino che implementa una ListView con diverse funzionalità, sfruttando anche le attached properties.
Solo che è scritto in C# che non conosco benissimo, e mi manca ancora da tradurre qualche parte.

Quando ho finito caso mai, se qualcuno mi sistema l'account che anche se sono membro non posso caricare nulla, carico il controllo sul sito.

=)
Ultima modifica effettuata da dedalux 08/01/11 12:09
aaa