C# 获取控件中的验证错误消息

C# 获取控件中的验证错误消息,c#,winforms,localization,devexpress,C#,Winforms,Localization,Devexpress,我正在使用C#使用DevExpress构建windows窗体。在windows窗体中,我使用DXValidationProvider和DXErrorProvider显示无效案例的错误消息。我们尝试对错误消息使用本地化。我的问题是,如何检查windows窗体是否具有DXValidationProvider,以及如何检查DXValidationProvider中定义了哪些控件。我们尝试使用以下代码 foreach (Control item in Controls) { if (item i

我正在使用C#使用DevExpress构建windows窗体。在windows窗体中,我使用DXValidationProvider和DXErrorProvider显示无效案例的错误消息。我们尝试对错误消息使用本地化。我的问题是,如何检查windows窗体是否具有DXValidationProvider,以及如何检查DXValidationProvider中定义了哪些控件。我们尝试使用以下代码

foreach (Control item in Controls)
{
    if (item is DXValidationProvider)
    {
        ....
    }
}
如下图所示,我们收到了警告

是一个集合,不会出现在
控件中

如果您通过设计器添加了组件,那么表单中应该有一个
components
成员。您可以这样使用它:

var provider = components.Components.OfType<DXValidationProvider>().FirstOrDefault();
if(provider != null)
{
    //do something ...
}
var provider=components.components.OfType().FirstOrDefault();
if(提供程序!=null)
{
//做点什么。。。
}
是一个集合,不会出现在
控件中

如果您通过设计器添加了组件,那么表单中应该有一个
components
成员。您可以这样使用它:

var provider = components.Components.OfType<DXValidationProvider>().FirstOrDefault();
if(provider != null)
{
    //do something ...
}
var provider=components.components.OfType().FirstOrDefault();
if(提供程序!=null)
{
//做点什么。。。
}

是一个集合,不会出现在
控件中。是,将不会出现在
控件
集合中。您的代码已放置在构造函数中,但提供程序为空。有什么建议吗?我是否应该将其移动到form_load中?尝试一下,例如,在按钮的单击事件处理程序中使用它。当你让它工作时,把它放在正确的位置(你应该确保代码在
InitializeComponent
之后)。当然,它在InitializeComponent之后,将尝试在click事件中处理它。你的代码已经放在构造函数中,但提供程序为空。有什么建议吗?我是否应该将其移动到form_load中?尝试一下,例如,在按钮的单击事件处理程序中使用它。当您使其工作时,将其放在正确的位置(您应该确保代码在
InitializeComponent
之后)。当然,它在InitializeComponent之后,将尝试在单击事件中处理它。