2009-04-03 9 views
1

J'ai une méthode qui valide un contrôle de zone de liste déroulante comme ceci:Qu'est-ce qu'une interface qui spécifie un contrôle Windows énumérable?

Public Function ValidateComboBox(ByVal objMessageMode As Errors.MessageMode, ByVal cboInput As ComboBox) As Boolean 

    Dim blnValidated As Boolean 

    'no value--invalidate' 
    If cboInput.SelectedValue Is Nothing Then 
     Errors.InvalidateField(cboInput, Errors.errFieldBlank, Me.ErrorProviderPurchaseTag, objMessageMode) 
     blnValidated = False 

     'value--validate' 
    Else 
     Errors.ValidateField(cboInput, Me.ErrorProviderPurchaseTag) 
     blnValidated = True 
    End If 

    Return blnValidated 

End Function 

Ce que je veux être en mesure de remplacer un contrôle en tant que paramètre qui implémente le comportement de l'objet « SelectedValue ». Y a-t-il une interface que je pourrais spécifier? Merci pour l'aide!

Répondre

0

ComboBox n'implémente pas une interface, mais hérite de la classe abstraite ListControl.

+0

Merci. Fonctionne comme un charme;) – Austin

0

Je ne crois pas qu'il existe. J'ai créé ma propre interface (généralement I (Product) Field qui contient aussi d'autres infos auxiliaires) que chaque type de contrôle implémente. Ensuite, dans la validation, je viens de jeter à cela; ce n'est pas le meilleur design du monde mais ça fonctionne comme un charme. Notez que cela implique également de sous-classer chaque type de contrôle (zone d'édition, zone de liste déroulante, etc.) mais, d'habitude, je les sous-classe déjà à d'autres fins, donc je ne considère pas cela comme un problème.