【问题标题】:combo box not validating组合框不验证
【发布时间】:2012-12-18 17:11:08
【问题描述】:

我是第一次在 Windows 窗体中使用 ErrorProvider。

我有一个简单的窗口,上面有一个组合框,里面有几个项目,默认情况下包括一个空白选择。我在底部还有一个“下一步”按钮。

当我运行表单并单击下一步并将组合框设置为空白时,我的验证不会触发。有什么想法吗?

我已按照文档中的说明连接了错误提供程序。

        // Favorite Color ComboBox 
        favoriteColorComboBox = new ComboBox();            
        favoriteColorComboBox.Items.AddRange(new object[] {"None","Red","Yellow" });
        favoriteColorComboBox.Validated += new EventHandler(favoriteColorComboBox_Validated);

        favoriteColorErrorProvider = new System.Windows.Forms.ErrorProvider();
        favoriteColorErrorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;

        _tableLayoutPanel1.Controls.Add(favoriteColorComboBox, 1, 1);
    }

    void favoriteColorComboBox_Validated(object sender, EventArgs e)
    {
        if (!IsColorValid())
        {
            // Set the error if the favorite color is not valid.
            favoriteColorErrorProvider.SetError(this.favoriteColorComboBox, "Must select a color.");
        }
        else
        {
            // Clear the error, if any, in the error provider.
            favoriteColorErrorProvider.SetError(this.favoriteColorComboBox, String.Empty);
        }
    }

    private bool IsColorValid()
    {
        // Determine whether the favorite color has a valid value. 
        return ((favoriteColorComboBox.SelectedItem != null) &&
            (!favoriteColorComboBox.SelectedItem.ToString().Equals("None")));
    }

【问题讨论】:

    标签: c# winforms errorprovider


    【解决方案1】:

    我认为您在单击按钮时没有事件。仅当您选择组合并移出组合框时才会进行组合框验证。在您的情况下,您没有选择组合本身,因此无需触发任何事件。试试这个:

    private void _buttonNext_Click(object sender, EventArgs e)
    {
        favoriteColorComboBox_Validated(sender, e);
    }
    

    单击下一步按钮时,它将触发与您想要的相同的验证。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      我必须调用 ValidateChildren 方法来触发验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多