关于winforms:如何让自定义控件兼容errorProvider?

How to make a custom control compatible with errorProvider?

我有一个看起来像这样的 winform 自定义控件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Class MyCustomControl
    Inherits Control
    Implements INotifyPropertyChanged    

    'Some textboxes...
    private Textbox1 as textbox
    private Textbox2 as textbox
    private Textbox3 as textbox

    'Control value
    Property Value as MyCustomClass
        get
            'Extract some values from textboxes and return MyCustomClass (a separate custom object)
        end get
        Set(value As MyCustomClass)
            'Set the values of the textboxes from the Value object
        end Set
    end Property
end class

我想将此对象插入到一个 winform 中,并且我希望我的控件与 errorProvider"兼容"。这样,如果我在表单中插入一个 errorProvider 并调用:errorProvider.SetError(MyCustomControl,"Error message"),它将根据自定义逻辑在我的自定义控件中的特定文本框中显示错误消息。

有谁知道应该实现哪个接口或如何实现?

谢谢。干杯,


使用 UserControl 可以更好地实现您想要做的事情,而不是直接从 Control 继承。 (在您的控件中拥有三个 TextBox 实例是一个很好的指示。)在您的 UserControl 中,您有几个选项:

  • 添加一个 ErrorProvider 组件并将其连接到每个 TextBox ;或者
  • 对于每个 TextBox,通过将其设为 public 或通过公共属性将其公开,然后在您的表单中将其连接到表单的 ErrorProvider
  • 理想情况下,您将使用 BindingSource 并数据绑定每个 TextBox,并将 ErrorProvider.DataSource 设置为您的 BindingSource