ComboBox-Steuerelement für Visual Basic 6.0-Benutzer
Aktualisiert: November 2007
Das ComboBox-Steuerelement von Visual Basic 6.0 wird in Visual Basic 2008 durch das ComboBox-Steuerelement von Windows Forms ersetzt. Die Namen einiger Eigenschaften, Methoden, Ereignisse und Konstanten wurden geändert, und in einigen Fällen weicht auch ihr Verhalten ab.
Konzeptionelle Unterschiede
Change-Ereignis
In Visual Basic 6.0 wird das Change-Ereignis des ComboBox-Steuerelements ausgelöst, wenn der Text des Steuerelements geändert wird. Das Change-Ereignis wird nicht ausgelöst, wenn ein Element im Listenbereich des Steuerelements ausgewählt wird. Das Change-Ereignis wird nicht ausgelöst, wenn der Text eines Elements in der Liste programmgesteuert geändert wurde.
In Visual Basic 2008 ist das Change-Ereignis nicht mehr vorhanden. Das TextChanged-Ereignis wird jedes Mal ausgelöst, wenn sich der Text aus irgendeinem Grund ändert, z. B.:
Wenn der Text im Texteingabebereich geändert wird.
Wenn ein Element aus der Liste ausgewählt wird.
Wenn ein Listenelement programmgesteuert geändert wird.
Wenn die AddItem-Methode aufgerufen wird.
ItemData-Eigenschaft
In Visual Basic 6.0 kann zur Entwurfszeit im Eigenschaftenfenster für die ItemData-Eigenschaft eines ComboBox-Steuerelements festgelegt werden, dass einem ComboBox-Element ein Integer-Wert zugeordnet wird.
In Visual Basic 2008 ist die ItemData-Eigenschaft nicht mehr vorhanden. Die Microsoft.VisualBasic.Compatibility-Bibliothek enthält eine SetItemData-Funktion, mit der einem Element ein Integer-Wert zugeordnet werden kann. Mit der GetItemData-Funktion kann das Element abgerufen werden.
Gesperrte Eigenschaft
In Visual Basic 6.0 bestimmt die Locked-Eigenschaft eines ComboBox-Steuerelements, ob der Textfeldbereich des Steuerelements bearbeitet werden kann.
In Visual Basic 2008 verhindert die Locked-Eigenschaft, dass ein Steuerelement zur Entwurfszeit verschoben werden kann. Es ist keine unmittelbare Entsprechung für die Locked-Eigenschaft von Visual Basic 6.0 vorhanden. Der gleiche Effekt lässt sich jedoch durch Festlegen der DropDownStyle-Eigenschaft des ComboBox-Steuerelements auf DropDownList erzielen.
Hinweis In Visual Basic 6.0 wird eine Änderung der Auswahl auch verhindert, wenn für die Locked-Eigenschaft True festgelegt wird. Sie können dieses Verhalten kopieren, indem Sie die Auswahl im MouseDown-Ereignis rückgängig machen.
NewIndex-Eigenschaft
In Visual Basic 6.0 wurde die NewIndex-Eigenschaft zum Abrufen des Indexes für das Element verwendet, das zuletzt zu einem ComboBox-Steuerelement hinzugefügt wurde.
In Visual Basic 2008 ist die NewIndex-Eigenschaft nicht mehr vorhanden. Sie können den Rückgabewert der Item.Add-Methode verwenden, um den Index eines Elements abzurufen, während es hinzugefügt wird.
TopIndex-Eigenschaft
In Visual Basic 6.0 wurde mit der TopIndex-Eigenschaft ein Wert zurückgegeben oder festgelegt, der angab, welches Element in einem ComboBox-Steuerelement oder einem ListBox-Steuerelement an der obersten Position angezeigt wird. Diese Eigenschaft wurde im Allgemeinen zum Durchführen eines Bildlaufs in einer Liste verwendet, ohne einen Eintrag auszuwählen.
In Visual Basic 2008 unterstützt das ComboBox-Steuerelement die TopIndex-Eigenschaft nicht mehr. In den meisten Fällen dürfte dies kein Problem darstellen, weil die TopIndex-Eigenschaft keine sichtbaren Auswirkungen hat, es sei denn, die Style-Eigenschaft ist auf 1 - SimpleCombo festgelegt. In diesem Fall können Sie dieses Verhalten mit einem ListBox-Steuerelement und einem TextBox-Steuerelement emulieren. Die TopIndex-Eigenschaft wird noch vom ListBox-Steuerelement unterstützt.
Scroll-Ereignis
In Visual Basic 6.0 wird das Scroll-Ereignis in Verbindung mit der TopIndex-Eigenschaft zum Ausführen von Aktionen verwendet, wenn in der Liste ein Bildlauf durchgeführt wird. Das Scroll-Ereignis wird von Visual Basic 2008 nicht unterstützt. In den meisten Fällen stellt das SelectedIndexChanged-Ereignis jedoch einen geeigneten Ersatz dar.
Andere Unterschiede
Außerdem gibt es zahlreiche konzeptionelle Unterschiede, die für alle Steuerelemente gelten. Hierzu gehören Unterschiede bei Datenbindung, Schriftartbehandlung, Drag-&-Drop-Vorgänge, Hilfeunterstützung usw. Weitere Informationen finden Sie unter Windows Forms-Konzepte für Visual Basic 6.0-Benutzer.
Änderungen am Code für das ComboBox-Steuerelement
Im folgenden Beispiel werden Unterschiede in den Codierungstechniken von Visual Basic 6.0 und Visual Basic 2008 dargestellt.
Änderungen am Code zum Definieren eines schreibgeschützten ComboBox-Steuerelements
Im folgenden Code wird veranschaulicht, wie die Benutzer daran gehindert werden, einem ComboBox-Steuerelement neue Elemente hinzuzufügen.
' Visual Basic 6.0
Combo1.Locked = True
' Visual Basic
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
Änderungen am Code zur Auswahl des Elements, das einem ComboBox-Steuerelement zuletzt hinzugefügt wurde
Im folgenden Code wird veranschaulicht, wie die Auswahl auf ein Element festgelegt wird, das programmgesteuert einem ComboBox-Steuerelement hinzugefügt wurde.
' Visual Basic 6.0
Combo1.AddItem "This is a new item"
Combo1.ListIndex = Combo1.NewIndex
' Visual Basic
Dim i As Integer
i = ComboBox1.Items.Add("This is a new item")
ComboBox1.SelectedIndex = i
Codeänderungen in privaten Sub-Prozeduren für das Zuordnen von ItemData
Im folgenden Code wird veranschaulicht, wie allen in einem ComboBox-Steuerelement aufgeführten Mitarbeitern eine Personalnummer zugeordnet wird und wie diese Nummer zur Laufzeit abgerufen wird.
' Visual Basic 6.0
Private Sub Form_Load
Combo1.AddItem "Nancy Davolio"
Combo1.ItemData(Combo1.NewIndex) = 12345
Combo1.AddItem "Judy Phelps"
Combo1.ItemData(Combo1.NewIndex) = 67890
End Sub
Private Sub Combo1_Click()
Label1.Caption = "Empoyee #" & _
CStr(Combo1.ItemData(Combo1.ListIndex))
End Sub
' Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add("Nancy Davolio")
Microsoft.VisualBasic.Compatibility.VB6. _
SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 12345)
ComboBox1.Items.Add("Judy Phelps")
Microsoft.VisualBasic.Compatibility.VB6. _
SetItemData(ComboBox1, ComboBox1.Items.Count() - 1, 67890)
End Sub
' Visual Basic
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Label1.Text = "Employee #" & CStr( _
Microsoft.VisualBasic.Compatibility.VB6. _
GetItemData(ComboBox1, ComboBox1.SelectedIndex))
End Sub
Entsprechungen zu Eigenschaften, Methoden und Ereignissen des ComboBox-Steuerelements
In den folgenden Tabellen werden Eigenschaften, Methoden und Ereignisse von Visual Basic 6.0 zusammen mit ihren Visual Basic 2008-Entsprechungen aufgeführt. Die Eigenschaften, Methoden und Ereignisse, die den gleichen Namen und das gleiche Verhalten haben, werden nicht aufgeführt. Sofern vorhanden, wurden Konstanten unter der Eigenschaft oder Methode eingerückt aufgelistet. Alle Visual Basic 2008-Enumerationen werden, sofern nicht anders angegeben, dem System.Windows.Forms-Namespace zugeordnet.
In dieser Tabelle werden Links zu Themen bereitgestellt, in denen Unterschiede im Verhalten erläutert werden. Wenn in Visual Basic 2008 keine direkte Entsprechung vorhanden ist, werden Links zu Themen bereitgestellt, die Alternativen behandeln.
Eigenschaften
Visual Basic 6.0 |
Visual Basic 2008-Entsprechung |
---|---|
Appearance |
Neue Implementierung. Weitere Informationen finden Sie unter Appearance-Eigenschaft und BorderStyle-Eigenschaft für Visual Basic 6.0-Benutzer. |
BackColor |
Hinweis:
Farben werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Farbverhalten für Visual Basic 6.0-Benutzer.
|
Container |
|
DataChanged DataField DataFormat DataMember DataSource |
Neue Implementierung. Weitere Informationen finden Sie unter Data-Steuerelement für Visual Basic 6.0-Benutzer. |
DragIcon DragMode |
Neue Implementierung. Weitere Informationen finden Sie unter Drag & Drop für Visual Basic 6.0-Benutzer. |
Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
Hinweis:
Schriftarten werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Schriftartbehandlung für Visual Basic 6.0-Benutzer.
|
ForeColor |
Hinweis:
Farben werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Farbverhalten für Visual Basic 6.0-Benutzer.
|
Height |
Hinweis:
Koordinaten werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Koordinatensystem für Visual Basic 6.0-Benutzer.
|
HelpContextID |
Neue Implementierung. Weitere Informationen finden Sie unter Hilfeunterstützung für Visual Basic 6.0-Benutzer. |
HWnd |
|
Index |
Neue Implementierung. Weitere Informationen finden Sie unter Steuerelementarrays für Visual Basic 6.0-Benutzer. |
ItemData |
Neue Implementierung. Weitere Informationen finden Sie unter Die ItemData-Eigenschaft kann nicht aktualisiert werden. |
Left |
Hinweis:
Koordinaten werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Koordinatensystem für Visual Basic 6.0-Benutzer.
|
List |
|
ListCount |
|
ListIndex |
|
Locked |
Hinweis:
In Visual Basic 6.0 wird eine Änderung der Auswahl auch verhindert, wenn die Locked-Eigenschaft auf True festgelegt wird. Sie können dieses Verhalten in Visual Basic 2008 kopieren, indem Sie die Auswahl im MouseDown-Ereignis rückgängig machen.
|
MouseIcon |
Neue Implementierung. Weitere Informationen finden Sie unter Es kann kein benutzerdefinierter MousePointer festgelegt werden. |
MousePointer |
Eine Liste mit Konstanten finden Sie unter MousePointer für Visual Basic 6.0-Benutzer. |
NewIndex |
Neue Implementierung. Weitere Informationen finden Sie unter Die NewIndex-Eigenschaft kann nicht aktualisiert werden. |
OLEDragMode |
Neue Implementierung. Weitere Informationen finden Sie unter Drag & Drop für Visual Basic 6.0-Benutzer. |
OLEDropMode |
Neue Implementierung. Weitere Informationen finden Sie unter Drag & Drop für Visual Basic 6.0-Benutzer. |
Parent |
FindForm-Methode |
RightToLeft |
|
SelLength |
|
SelStart |
|
SelText |
|
Style |
|
ToolTipText |
ToolTip-Komponente Weitere Informationen finden Sie unter QuickInfo-Unterstützung für Visual Basic 6.0-Benutzer. |
Top |
Hinweis:
Koordinaten werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Koordinatensystem für Visual Basic 6.0-Benutzer.
|
TopIndex |
Neue Implementierung. Weitere Informationen finden Sie unter TopIndex-Eigenschaft und Scroll-Ereignis für Visual Basic 6.0-Benutzer. |
WhatsThisHelpID |
Neue Implementierung. Weitere Informationen finden Sie unter Hilfeunterstützung für Visual Basic 6.0-Benutzer. |
Width |
Hinweis:
Koordinaten werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Koordinatensystem für Visual Basic 6.0-Benutzer.
|
Methoden
Visual Basic 6.0 |
Visual Basic 2008-Entsprechung |
---|---|
AddItem |
|
Clear |
|
Drag |
Neue Implementierung. Weitere Informationen finden Sie unter Drag & Drop für Visual Basic 6.0-Benutzer. |
Move |
Hinweis:
Koordinaten werden in Visual Basic 2008 anders behandelt. Weitere Informationen finden Sie unter Koordinatensystem für Visual Basic 6.0-Benutzer.
|
OLEDrag |
|
RemoveItem |
Items.Remove |
SetFocus |
|
ShowWhatsThis |
Neue Implementierung. Weitere Informationen finden Sie unter Hilfeunterstützung für Visual Basic 6.0-Benutzer. |
ZOrder |
BringToFrontSendToBack-Funktionen |
Ereignisse
Visual Basic 6.0 |
Visual Basic 2008-Entsprechung |
---|---|
Change |
Hinweis:
Das Verhalten des TextChanged-Ereignisses weicht geringfügig ab. Weitere Informationen finden Sie unter Change-Ereignis des ComboBox-Steuerelements für Visual Basic 6.0-Benutzer.
|
Click |
|
DblClick |
Neue Implementierung. Verwenden Sie das SelectedIndexChanged oder das TextChanged-Ereignis. |
DragDrop DragOver |
Neue Implementierung. Weitere Informationen finden Sie unter Drag & Drop für Visual Basic 6.0-Benutzer. |
GotFocus |
|
LostFocus |
|
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
Neue Implementierung. Weitere Informationen finden Sie unter Drag & Drop für Visual Basic 6.0-Benutzer. |
Scroll |
Neue Implementierung. Weitere Informationen finden Sie unter TopIndex-Eigenschaft und Scroll-Ereignis für Visual Basic 6.0-Benutzer. |
Validate |
Hinweise zum Durchführen einer Aktualisierung
Wenn Sie für ein Visual Basic 6.0-Projekt ein Update auf Visual Basic 2008 durchführen, wird dem Change-Ereignis des ComboBox-Steuerelements das TextChanged-Ereignis des ComboBox-Steuerelements von Visual Basic 2008 zugeordnet. Das Verhalten des TextChanged-Ereignisses weicht von dem des Change-Ereignisses ab. Dieser Unterschied kann zu unerwünschten Ergebnissen im Code führen.
Jeglicher Code, der auf die Eigenschaften ItemData, Locked, NewIndex oder TopIndex verweist, und der Code in der Scroll-Ereignisprozedur wird nicht aktualisiert. Dem Code werden Warnkommentare hinzugefügt, und der Code muss vor dem Kompilieren der Anwendung entfernt oder geändert werden.
Siehe auch
Konzepte
Farbverhalten für Visual Basic 6.0-Benutzer
Font-Objekt für Visual Basic 6.0-Benutzer
MousePointer für Visual Basic 6.0-Benutzer
QuickInfo-Unterstützung für Visual Basic 6.0-Benutzer