什么是指定可枚举 Windows 控件的接口?

Posted

技术标签:

【中文标题】什么是指定可枚举 Windows 控件的接口?【英文标题】:What is an interface that specifies an enumerable Windows control? 【发布时间】:2010-10-17 10:39:29 【问题描述】:

我有一个方法可以像这样验证组合框控件:

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

我想要的是能够将任何控件替换为实现“SelectedValue”对象行为的参数。有我可以指定的接口吗?感谢您的帮助!

【问题讨论】:

【参考方案1】:

ComboBox 没有实现接口,而是继承自抽象类ListControl。

【讨论】:

【参考方案2】:

我不相信有。我创建了我自己的接口(通常是 I(Product)Field,它还包含其他帮助信息),每种不同类型的控件都实现了这些接口。然后,在验证中,我只是对此进行了验证;这不是世界上最好的设计,但它就像一个魅力。

请注意,这还涉及对每种类型的控件(编辑框、组合框等)进行子类化,但是,我通常已经将它们子类化以用于其他目的,因此我认为这不是问题。

【讨论】:

以上是关于什么是指定可枚举 Windows 控件的接口?的主要内容,如果未能解决你的问题,请参考以下文章

实现Windows程序的数据更新

可枚举的 Qt 小部件

C# 枚举器和可枚举类型

PowerShell:在Windows 10中为Wi-Fi网络生成QR代码

wifi模块是啥形状的

win32如何自己编写控件