2010-01-21 3 views
1

J'ai un ComboBox lié à un champ de table et je veux valider la sélection, puisque seulement certaines sélections sont valables selon le contexte. Dans l'événement de validation de validation, comment puis-je obtenir la valeur avant ou dans la table.field avant que la sélection ne change?VB.NET ComboBox Validation?

Répondre

1

Le contrôle WinForms ComboBox ne permet pas d'intercepter un changement de valeur et de l'annuler. Vous pouvez utiliser l'événement Validating (ou, comme vous le décrivez, sous-classer ComboBox et remplacer OnValidating), mais ceux-ci vous permettent uniquement de conserver le focus sur le contrôle. Vous ne pouvez pas réellement "annuler" une modification de valeur via les événements de validation.

Il existe plusieurs packages tiers (DevExpress, par exemple) qui fournissent des ComboBox qui vous permettent d'inspecter les valeurs initiales et nouvelles lorsque la valeur change et d'annuler la modification si vous le souhaitez, mais la ComboBox fournie dans System. Windows.Forms ne le fait pas.

+0

Merci. J'ai regardé rapidement leur site. Cela coûte environ $. Mais ma plus grande inquiétude est de ne pas savoir ce que je pourrais manquer avec leur Combo en opposition à celui de VS. Utilisez-vous DevExpress? – Alex

+0

@ bochur1: Je ne les utilise pas là où je suis en ce moment, mais je les ai beaucoup utilisés chez mon dernier employeur. Alors que le paquet peut être cher, les contrôles eux-mêmes sont de très haute qualité. Si tout ce que vous cherchez est un ComboBox sur lequel vous pouvez annuler les modifications, il y a probablement des options plus économiques, mais comme les bibliothèques de contrôle WinForms vont, le paquet DXperience est l'un des meilleurs (sinon le meilleur). –

+0

> Si tout ce que vous cherchez est un ComboBox que vous pouvez annuler les modifications Autorisent-ils plusieurs colonnes dans le ComboBox? Sinon, tout ce que je recherche est l'annulation. Quelles autres options ai-je? – Alex

Questions connexes