【问题标题】:Get Validation error messages in controls在控件中获取验证错误消息
【发布时间】:2021-02-08 12:39:02
【问题描述】:

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

foreach (Control item in Controls)
{
    if (item is DXValidationProvider)
    {
        ....
    }
}

我们收到如下图所示的警告

【问题讨论】:

标签: c# winforms localization devexpress


【解决方案1】:

DXValidationProvider 是一个Component,不会出现在Controls 集合中。

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

var provider = components.Components.OfType<DXValidationProvider>().FirstOrDefault();
if(provider != null)
{
    //do something ...
}

【讨论】:

  • 你的代码已经放在了构造函数中,但是提供者为空。有什么建议吗?我应该将它移到 form_load 中吗?
  • 试一试,例如在按钮的单击事件处理程序中使用它。当你让它工作时,把它放在正确的地方(你应该确保代码在InitializeComponent之后。)
  • 肯定在InitializeComponent之后,会尝试在点击事件中处理。
猜你喜欢
  • 2021-01-29
  • 2016-05-27
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多