Controllo ListBox per gli utenti di Visual Basic 6.0

Aggiornamento: novembre 2007

In Visual Basic 2008, il controllo ListBox di Visual Basic 6.0 viene sostituito dal controllo ListBox o dal controllo CheckedListBox. I nomi di alcuni metodi, eventi, proprietà e costanti sono differenti e in certi casi esistono anche delle differenze di comportamento.

Differenze concettuali

ListBox con casella di controllo

In Visual Basic 6.0 mediante la proprietà Style di un controllo ListBox si determina la possibilità di visualizzare una casella di controllo accanto a ciascun elemento di testo. Anche se la proprietà MultiSelect è impostata su False, è possibile selezionare più elementi nel controllo ListBox selezionando la casella di controllo accanto a essi. Non esiste un modo per determinare a livello di codice se un elemento è stato selezionato o deselezionato; per implementare questa funzionalità è necessario utilizzare un controllo ListView.

In Visual Basic 2008 mediante il nuovo controllo CheckedListBox è possibile visualizzare le caselle di controllo accanto a ogni elemento; non è più possibile visualizzare le caselle di controllo nel controllo ListBox. Il controllo CheckedListBox consente di stabilire a livello di codice mediante un insieme CheckedListBox.CheckedItemCollection se un elemento è stato selezionato o deselezionato.

Proprietà Columns

In Visual Basic 6.0 la proprietà Columns accettava un intero in cui si specificava il numero di colonne da visualizzare.

In Visual Basic 2008, invece, la proprietà MultiColumn accetta un valore booleano e la proprietà ColumnWidth accetta un intero in cui si specifica la larghezza in pixel. Se la larghezza del controllo ListBox viene modificata in fase di esecuzione, potrebbe essere necessario inoltre impostare la proprietà ColumnWidth per ciascuna colonna.

Evento ItemCheck

In Visual Basic 6.0 il controllo ListBox era tale che quando si generava un evento ItemCheck lo stato di attivazione era già cambiato.

In Visual Basic 2008, invece, il controllo CheckedListBox è tale che quando si genera l'evento ItemCheck lo stato di attivazione non è ancora cambiato. È possibile ottenere il valore in sospeso dell'argomento ItemCheckEventArgs passato all'evento.

Modifiche del codice per il controllo ListBox

Nell'esempio riportato di seguito vengono illustrate le differenze nelle tecniche di codifica tra Visual Basic 6.0 e Visual Basic 2008.

Modifiche del codice per aggiungere e rimuovere elementi in un controllo ListBox

Nell'esempio di codice riportato di seguito viene mostrato come aggiungere e rimuovere gli elementi del controllo ListBox.

' Visual Basic 6.0
' Add an item at the end of the list.
List1.AddItem "Tokyo"
' Insert an item at the top of the list.
List1.AddItem "Copenhagen", 0
' Remove the first item.
List1.RemoveItem 0
'Visual Basic
' Add an item at the end of the list.
ListBox1.Items.Add("Tokyo")
' Insert an item at the top of the list.
ListBox1.Items.Insert(0, "Copenhagen")
' Remove the first item.
ListBox1.Items.RemoveAt(0)

Modifiche del codice per accedere a elementi specifici di un controllo ListBox

Nell'esempio di codice riportato di seguito viene mostrato come ottenere il valore di un elemento di un controllo ListBox.

' Visual Basic 6.0
Private Function GetItemText(i As Integer) As String
   ' Return the text of the item using the index:
   GetItemText = ListBox1.List(i)
End Function
' Visual Basic
Private Function GetItemText(ByVal i As Integer) As String
   ' Return the text of the item using the index:
   GetItemText = CStr(ListBox1.Items(i))
End Function

Modifiche del codice per rilevare gli elementi selezionati in un controllo CheckedListBox

Nell'esempio di codice riportato di seguito viene illustrato come determinare se gli elementi di un controllo CheckedListBox sono selezionati o deselezionati.

' Visual Basic 6.0
' The Visual Basic 6.0 ListBox control didn't support this scenario,
' a ListView control had to be used instead.
Dim s As String
Dim i As Integer
' Loop through all items
For i = 1 To ListView1.ListItems.Count
   ' If an item is checked, add it to the string
   If ListView1.ListItems(i).Checked = True Then
      s = s & "Checked Item" & CStr(i) & " = " & _
ListView1.ListItems(i) & vbCrLf
   End If
Next
' Determine if any items are checked.
If s <> "" Then
    MsgBox s
End If
' Visual Basic
' Determine if there are any items checked.
If CheckedListBox1.CheckedItems.Count <> 0 Then
  ' If so, loop through all checked items and print results.
  Dim x As Integer
  Dim s As String = ""
  For x = 0 To CheckedListBox1.CheckedItems.Count - 1
      s = s & "Checked Item " & CStr(x + 1) & " = " & _
      CStr(CheckedListBox1.CheckedItems(x)) & ControlChars.CrLf
  Next x
  MessageBox.Show(s)
End If

Proprietà, metodi ed eventi equivalenti del controllo ListBox

Nelle tabelle riportate di seguito sono elencati le proprietà, i metodi e gli eventi di Visual Basic 6.0, insieme ai rispettivi equivalenti di Visual Basic 2008. Non sono riportati nell'elenco le proprietà, i metodi e gli eventi aventi stesso nome e comportamento. Le costanti sono visualizzate, ove applicabile, sotto la proprietà o il metodo. Se non diversamente specificato, tutte le enumerazioni Visual Basic 2008 sono mappate allo spazio dei nomi System.Windows.Forms.

In questa tabella vengono forniti collegamenti ad argomenti in cui sono illustrate le differenze di comportamento. Quando non è presente un equivalente diretto in Visual Basic 2008, vengono forniti collegamenti ad argomenti in cui sono illustrate le alternative disponibili.

Proprietà

Visual Basic 6.0

Visual Basic 2008Equivalente

Appearance

Nuova implementazione. Per ulteriori informazioni, vedere Proprietà Appearance e BorderStyle per gli utenti di Visual Basic 6.0.

BackColor

BackColor

Nota:

I colori sono gestiti in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Comportamento dei colori per gli utenti di Visual Basic 6.0.

Columns

MultiColumn e ColumnWidth

Container

Parent

DataChanged

DataField

DataFormat

DataMember

DataSource

Nuova implementazione. Per ulteriori informazioni, vedere Accesso ai dati per gli utenti di Visual Basic 6.0.

DragIcon

DragMode

Nuova implementazione. Per ulteriori informazioni, vedere Trascinamento della selezione per gli utenti di Visual Basic 6.0.

FontFont

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

Nota:

I tipi di carattere sono gestiti in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Oggetto Font per gli utenti di Visual Basic 6.0.

ForeColor

ForeColor

Nota:

I colori sono gestiti in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Comportamento dei colori per gli utenti di Visual Basic 6.0.

Height

Height, Size

Nota:

Le coordinate sono gestite in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Sistema di coordinate per gli utenti di Visual Basic 6.0.

HelpContextID

Nuova implementazione. Per ulteriori informazioni, vedere Supporto della Guida per gli utenti di Visual Basic 6.0.

HWnd

Handle

Index

Nuova implementazione. Per ulteriori informazioni, vedere Matrici di controlli per gli utenti di Visual Basic 6.0.

IntegralHeight

IntegralHeight

ItemData

Nuova implementazione. Per ulteriori informazioni, vedere Impossibile aggiornare la proprietà ItemData.

Left

Left

Nota:

Le coordinate sono gestite in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Sistema di coordinate per gli utenti di Visual Basic 6.0.

List

Items

ListCount

Count (List.Count)

ListIndex

SelectedIndex

MouseIcon

Nuova implementazione. Per ulteriori informazioni, vedere Impossibile impostare un MousePointer personalizzato.

MousePointer

Cursor

Per un elenco di costanti, vedere MousePointer per gli utenti di Visual Basic 6.0.

MultiSelect

SelectionMode

NewIndex

Nuova implementazione. Per ulteriori informazioni, vedere Impossibile aggiornare la proprietà NewIndex.

OLEDragMode

OLEDropMode

Nuova implementazione. Per ulteriori informazioni, vedere Trascinamento della selezione per gli utenti di Visual Basic 6.0.

Parent

Metodo FindForm

SelCount

Count (SelectedItem.Count)

Selected

GetSelected, SetSelected (controllo ListBox)

GetItemChecked, SetItemChecked (controllo CheckedListBox)

Style

Proprietà di nuova implementazione. Viene eseguito il mapping di 0 – Standard al controllo CheckedListBox e di 1 – Checkbox al controllo CheckedListBox.

ToolTipText

Componente ToolTip

Per ulteriori informazioni, vedere Supporto di ToolTip per gli utenti di Visual Basic 6.0.

Top

Top

Nota:

Le coordinate sono gestite in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Sistema di coordinate per gli utenti di Visual Basic 6.0.

WhatsThisHelpID

Nuova implementazione. Per ulteriori informazioni, vedere Supporto della Guida per gli utenti di Visual Basic 6.0.

Width

Width, Size

Nota:

Le coordinate sono gestite in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Sistema di coordinate per gli utenti di Visual Basic 6.0.

Metodi

Name

Visual Basic 2008Equivalente

AddItem

Add

AddRange

Insert

Clear

Clear

Drag

Nuova implementazione. Per ulteriori informazioni, vedere Trascinamento della selezione per gli utenti di Visual Basic 6.0.

Move

SetBounds

Nota:

Le coordinate sono gestite in modo diverso in Visual Basic 2008. Per ulteriori informazioni, vedere Sistema di coordinate per gli utenti di Visual Basic 6.0.

OLEDrag

Nuova implementazione. Per ulteriori informazioni, vedere Trascinamento della selezione per gli utenti di Visual Basic 6.0.

RemoveItem

Remove

SetFocus

Focus

ShowWhatsThis

Nuova implementazione. Per ulteriori informazioni, vedere Supporto della Guida per gli utenti di Visual Basic 6.0.

ZOrder

Metodo BringToFront o SendToBack

Eventi

Visual Basic 6.0

Visual Basic 2008Equivalente

DblClick

DoubleClick

DragDrop

DragOver

Nuova implementazione. Per ulteriori informazioni, vedere Trascinamento della selezione per gli utenti di Visual Basic 6.0.

GotFocus

Enter

ItemCheck

ItemCheck (solo CheckedListBox)

LostFocus

Leave

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

Nuova implementazione. Per ulteriori informazioni, vedere Trascinamento della selezione per gli utenti di Visual Basic 6.0.

Scroll

Nuova implementazione. Per ulteriori informazioni, vedere Proprietà TopIndex ed evento Scroll per gli utenti di Visual Basic 6.0.

Validate

Validating

Note sull'aggiornamento

Durante l'aggiornamento, se la proprietà Style di un controllo Listbox di Visual Basic 6.0 è impostata su 1 – Checkbox, il controllo verrà aggiornato al controllo CheckedListBox; in caso contrario, verrà aggiornato al controllo ListBox.

Vedere anche

Riferimenti

Cenni preliminari sul controllo ListBox (Windows Form)

Cenni preliminari sul controllo ListBox (Windows Form)

Cenni preliminari sul controllo CheckedListBox (Windows Form)