Contrôle ComboBox pour les utilisateurs de Visual Basic 6.0
Mise à jour : novembre 2007
Le contrôle ComboBox de Visual Basic 6.0 est remplacé par le contrôle Windows Forms ComboBox dans Visual Basic 2008. Les noms de certains événements, propriétés, méthodes et constantes ont changé. En outre, dans certains cas, leur comportement est également différent.
Différences conceptuelles
Change, événement
Dans Visual Basic 6.0, l'événement Change du contrôle ComboBox est déclenché lorsque le texte du contrôle est modifié. L'événement Change n'est pas déclenché lorsqu'un élément est sélectionné dans la partie liste du contrôle. La modification par programme du texte d'un élément dans la liste ne déclenche pas l'événement Change.
Dans Visual Basic 2008, l'événement Change n'existe plus ; l'événement TextChanged est déclenché chaque fois que le texte est modifié pour une raison ou pour une autre, telle que :
Lorsque la partie de texte est modifiée
Lorsqu'un élément est sélectionné dans la liste
Lorsqu'un élément de liste est modifié par programme
Lorsque la méthode AddItem est appelée
ItemData, propriété
Dans Visual Basic 6.0, la propriété ItemData d'un contrôle ComboBox peut être définie au moment du design dans la fenêtre Propriétés pour associer un Integer à un élément ComboBox.
Dans Visual Basic 2008, la propriété ItemData n'existe plus. La bibliothèque de compatibilité Visual Basic (Microsoft.VisualBasic.Compatibility) contient une fonction SetItemData qui peut être utilisée pour associer Integer à un élément ; la fonction GetItemData peut être utilisée pour récupérer l'élément.
Locked, propriété
Dans Visual Basic 6.0, la propriété Locked d'un contrôle ComboBox détermine si la zone de texte du contrôle peut être modifiée.
Dans Visual Basic 2008, la propriété Locked empêche un contrôle d'être déplacé au moment du design. Il n'y a aucun équivalent direct pour la propriété Locked dans Visual Basic 6.0 ; toutefois, vous pouvez obtenir le même effet en affectant DropDownList à la propriété DropDownStyle du contrôle ComboBox.
Remarque Dans Visual Basic 6.0, l'affectation de la valeur True à la propriété Locked empêche également que la sélection ne soit modifiée. Vous pouvez dupliquer ce comportement en annulant la sélection opérée dans l'événement MouseDown.
NewIndex, propriété
Dans Visual Basic 6.0, la propriété NewIndex était utilisée pour récupérer l'index du dernier élément ajouté à un contrôle ComboBox.
Dans Visual Basic 2008, la propriété NewIndex n'existe plus. Vous pouvez utiliser la valeur de retour de la méthode Item.Add pour récupérer l'index d'un élément tel qu'il est ajouté.
TopIndex, propriété
Dans Visual Basic 6.0, la propriété TopIndex est utilisée pour retourner ou définir une valeur désignant l'élément d'un contrôle ComboBox ou ListBox qui est affiché en première position de la liste. Cette propriété est couramment utilisée pour faire défiler une liste sans y sélectionner d'élément.
Dans Visual Basic 2008, la propriété ComboBox ne prend plus en charge la propriété TopIndex. Dans la plupart des cas, cela ne devrait poser aucun problème, dans la mesure où la définition de la propriété TopIndex n'a d'effet visible que si la propriété Style a la valeur 1 - SimpleCombo. Dans le cas présent, vous pouvez émuler ce comportement à l'aide d'un contrôle ListBox et d'un contrôle TextBox ; le contrôle ListBox prend toujours en charge la propriété TopIndex.
Scroll, événement
L'événement Scroll dans Visual Basic 6.0 est utilisé conjointement avec la propriété TopIndex pour exécuter des actions lors du défilement de la liste. Visual Basic 2008 ne prend pas en charge l'événement Scroll ; toutefois, dans la plupart des cas, l'événement SelectedIndexChanged est une solution appropriée.
Autres différences
De plus, de nombreuses différences conceptuelles s'appliquent à tous les contrôles, y compris des différences relatives à la liaison de données, la gestion des polices, les opérations de glisser-déplacer, la prise en charge de l'aide, etc. Pour plus d'informations, consultez Concepts Windows Forms pour les utilisateurs de Visual Basic 6.0.
Modifications du code pour le contrôle ComboBox
Les exemples ci-dessous illustrent les différences entre les techniques de codage dans Visual Basic 6.0 et dans Visual Basic 2008.
Modifications du code pour mettre un contrôle ComboBox en lecture seule
Le code suivant illustre comment empêcher un utilisateur d'ajouter de nouveaux éléments à un contrôle ComboBox.
' Visual Basic 6.0
Combo1.Locked = True
' Visual Basic
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
Modifications du code pour sélectionner l'élément ajouté en dernier dans un contrôle ComboBox
Le code suivant illustre comment définir la sélection à un élément qui a été ajouté par programme à un contrôle ComboBox.
' 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
Modifications du sous code privé pour associer ItemData
Le code suivant illustre comment associer un numéro d'employé à chaque employé répertorié dans un contrôle ComboBox, puis comment récupérer ce numéro au moment de l'exécution.
' 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
Équivalences des propriétés, méthodes et événements du contrôle ComboBox
Les tableaux ci-dessous répertorient les propriétés, les méthodes et les événements de Visual Basic 6.0, ainsi que leurs équivalents dans Visual Basic 2008. Ces propriétés, méthodes et événements qui ont les mêmes nom et comportement ne sont pas répertoriés. Lorsque des constantes s'appliquent, elles sont présentées en retrait sous le nom de la propriété ou de la méthode. Sauf indication contraire, toutes les énumérations Visual Basic 2008 sont mappées à l'espace de noms System.Windows.Forms.
Ce tableau fournit des liens vers les rubriques qui expliquent des différences de comportement. Lorsqu'il n'existe pas d'équivalent direct dans Visual Basic 2008, des liens vous renvoient vers des rubriques proposant des alternatives.
Propriétés
Visual Basic 6.0 |
Équivalent Visual Basic 2008 |
||
---|---|---|---|
Appearance |
Nouvelle implémentation. Pour plus d'informations, consultez Propriétés Appearance et BorderStyle pour les utilisateurs de Visual Basic 6.0. |
||
BackColor |
|
||
Container |
|||
DataChanged DataField DataFormat DataMember DataSource |
Nouvelle implémentation. Pour plus d'informations, consultez Contrôle de données pour les utilisateurs de Visual Basic 6.0. |
||
DragIcon DragMode |
Nouvelle implémentation. Pour plus d'informations, consultez Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
|
||
ForeColor |
|
||
Height |
|
||
HelpContextID |
Nouvelle implémentation. Pour plus d'informations, consultez Prise en charge de l'aide pour les utilisateurs de Visual Basic 6.0. |
||
HWnd |
|||
Index |
Nouvelle implémentation. Pour plus d'informations, consultez Tableaux de contrôles pour les utilisateurs de Visual Basic 6.0. |
||
ItemData |
Nouvelle implémentation. Pour plus d'informations, consultez Impossible de mettre à niveau la propriété ItemData. |
||
Left |
|
||
List |
|||
ListCount |
|||
ListIndex |
|||
Locked |
|
||
MouseIcon |
Nouvelle implémentation. Pour plus d'informations, consultez Impossible de définir un pointeur de souris personnalisé. |
||
MousePointer |
Pour obtenir la liste des constantes, consultez MousePointer pour les utilisateurs de Visual Basic 6.0. |
||
NewIndex |
Nouvelle implémentation. Pour plus d'informations, consultez Impossible de mettre à niveau la propriété NewIndex. |
||
OLEDragMode |
Nouvelle implémentation. Pour plus d'informations, consultez Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
OLEDropMode |
Nouvelle implémentation. Pour plus d'informations, consultez Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
Parent |
Méthode FindForm |
||
RightToLeft |
|||
SelLength |
|||
SelStart |
|||
SelText |
|||
Style |
|||
ToolTipText |
Composant ToolTip Pour plus d'informations, consultez Prise en charge des info-bulles pour les utilisateurs de Visual Basic 6.0. |
||
Top |
|
||
TopIndex |
Nouvelle implémentation. Pour plus d'informations, consultez Propriété TopIndex et événement Scroll pour les utilisateurs de Visual Basic 6.0. |
||
WhatsThisHelpID |
Nouvelle implémentation. Pour plus d'informations, consultez Prise en charge de l'aide pour les utilisateurs de Visual Basic 6.0. |
||
Width |
|
Méthodes
Visual Basic 6.0 |
Équivalent Visual Basic 2008 |
||
---|---|---|---|
AddItem |
|||
Clear |
|||
Drag |
Nouvelle implémentation. Pour plus d'informations, consultez Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
Move |
|
||
OLEDrag |
Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
RemoveItem |
Items.Remove |
||
SetFocus |
|||
ShowWhatsThis |
Nouvelle implémentation. Pour plus d'informations, consultez Prise en charge de l'aide pour les utilisateurs de Visual Basic 6.0. |
||
ZOrder |
BringToFront Fonctions SendToBack |
Événements
Visual Basic 6.0 |
Équivalent Visual Basic 2008 |
||
---|---|---|---|
Change |
|
||
Click |
|||
DblClick |
Nouvelle implémentation. Utilisez l'événement SelectedIndexChanged ou TextChanged. |
||
DragDrop DragOver |
Nouvelle implémentation. Pour plus d'informations, consultez Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
GotFocus |
|||
LostFocus |
|||
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
Nouvelle implémentation. Pour plus d'informations, consultez Fonction de glisser-déplacer pour les utilisateurs de Visual Basic 6.0. |
||
Scroll |
Nouvelle implémentation. Pour plus d'informations, consultez Propriété TopIndex et événement Scroll pour les utilisateurs de Visual Basic 6.0. |
||
Validate |
Mettre à niveau des remarques
Lorsqu'un projet Visual Basic 6.0 est mis à niveau vers Visual Basic 2008, l'événement Change du contrôle ComboBox est mappé à l'événement TextChanged du contrôle Visual Basic 2008ComboBox. Le comportement de l'événement TextChanged diffère de celui de l'événement Change ; cette différence peut produire des résultats imprévus dans votre code.
Tout code qui fait référence aux propriétés ItemData, Locked, NewIndex ou TopIndex ou tout code dans la procédure événementielle Scroll n'est pas mis à niveau ; des commentaires d'avertissement sont ajoutés au code et ce dernier doit être supprimé ou modifié avant la compilation de l'application.
Voir aussi
Concepts
Comportement des couleurs pour les utilisateurs de Visual Basic 6.0
Objet Font pour les utilisateurs de Visual Basic 6.0
MousePointer pour les utilisateurs de Visual Basic 6.0
Prise en charge des info-bulles pour les utilisateurs de Visual Basic 6.0