Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43

    [Visual Studio 2005] Problemi Group listview

    Salve

    Ho un piccolo problemino con la creazione e l'utilizzo delle listview e dei gruppi

    Il Mio codice è questo..

    Public Class Form1
    Dim g(26) As ListViewGroup
    Dim l As New ListViewItem

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim i As Integer
    Dim ix As Integer
    Dim elemento As String
    Dim iniziale As String
    'parametri connessione database
    for i=0 to 'totale record database
    elemento = dr.tables("anagrafe").row("cognome") + " " + dr.tables("anagrafe").row("Nome")
    iniziale = elemento.Chars(0)
    For i = 0 To 25
    If iniziale = g(ix).Header Then
    l.Text = elemento
    l.Group = g(i)
    ListView1.Items.Add(l)
    End If
    Next i
    End Sub
    Sub creazione()
    Dim i As Integer
    Dim iniz As Integer = 65
    For i = 0 To 25
    g(i) = New ListViewGroup
    g(i).Header = Chr(iniz)
    ListView1.Groups.Add(g(i))
    Next i
    End Sub
    End Class
    Io vorrei dividere le persone in base all'iniziale del proprio cognome
    Solo che con il suddetto codice nn mi visualizza nulla..

    Sapreste dirmi dove sbaglio?

    Successivamente è possibile con una voce del contextmenu scegliere se visualizzare o meno la visualizzazione a gruppi

    Grazie
    Sicut Nox Silentes

  2. #2
    Ci sono errori nel codice:
    codice:
    Public Class Form1
    Dim g(26) As ListViewGroup
    Dim l As New ListViewItem
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim i As Integer
      Dim ix As Integer
      Dim elemento As String
      Dim iniziale As String
      'parametri connessione database
      for i=0 to 'totale record database
        elemento = dr.tables("anagrafe").row("cognome") + " " + dr.tables("anagrafe").row("Nome")
        iniziale = elemento.Chars(0)
        l.Text = elemento
        l.Group = ListView1.Groups(asc(iniziale.tolower(0)) - 65)
        ListView1.Items.Add(l)
      Next i
    End Sub
    
    Sub creazione()
      Dim i As Integer
      Dim iniz As Integer = 65
      For i = 0 To 25
        g(i) = New ListViewGroup
        g(i).Header = Chr(iniz + i) '<--- Qua avevi creato 26 gruppi con Header = 'A'
        ListView1.Groups.Add(g(i))
        Next i
      End Sub
    End Class
    Poi non ti visualizzava niente perchè 65 è il codice di 'a' minuscola, quindi tutti gli header eranoo minuscoli, mentre i nomi maiuscoli. Poi c'erano anche errori nel codice. Ora dovrebbe andare.

  3. #3
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43
    TOTEM io ti farò un TOTEM

    o preferisci una Piramide o un Arco di Trionfo..??

    Per l'aiuto dato..

    Grazie

    ps. Per Scegliere di visualizzare o meno i gruppi sai come posso fare ??
    Sicut Nox Silentes

  4. #4
    Beh basterebbe un assegno da 10'000€
    E che io sappia non c'è un modo per non visualizzare i gruppi, a parte, ovviamente, eliminare tutti i gruppi della proprietà ListView.Groups e annullare ListViewItem.Group. Ma io non so tutto, quindi prova a fare una ricerca....

  5. #5
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43
    Ehm..



    Non mi funziona il codice !!

    Ho capito che gli utenti divisi per gruppi (con l'header del gruppo = all'iniziale del cognome)
    non sono utilizzabili..!

    Penserò ad un modo diverso.. Grazie lo stesso dell'aiuto
    Sicut Nox Silentes

  6. #6
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43
    Ehm..



    Non mi funziona il codice !!

    Ho capito che gli utenti divisi per gruppi (con l'header del gruppo = all'iniziale del cognome)
    non sono utilizzabili..!

    O Meglio funziona solo se ho un solo elemento nella listview

    Già dal secondo elemento mi dice "Impossibile inserire l'elemento in più di una posizione"

    Ma se l'elemento è Minnie per esempio il gruppo è M non capisco xkè me lo deve inserire in + di una posizione

    For i = 0 To ListBox1.Items.Count - 1
    elemento = ListBox1.Items.Item(i) 'questa è una prova il codice corretto è : ds.Tables("anagrafe").Rows(i).Item("Cognome") + " " + ds.Tables("anagrafe").Rows(i).Item("Nome")
    iniziale = elemento.Chars(0)
    MsgBox(iniziale)
    ix = Asc(iniziale.ToUpper) - 65
    l.Text = elemento
    l.Group = ListView1.Groups(ix)

    ListView1.Items.Add(l)
    Next
    End Sub
    Sub popolo()
    ListBox1.Items.Add("pippo")
    ListBox1.Items.Add("minnie")
    'ListBox1.Items.Add("topolino")
    End Sub
    Sicut Nox Silentes

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.