errorprovider或消息框?

时间:2017-05-15 15:25:19

标签: c# winforms errorprovider

我有一个更简单的窗体输入(学生姓名,studentid)显示到列表框。

在添加值之前,我需要在列表框中检查重复的学生ID。 我可以在学生ID文本框中使用错误提供程序来执行此操作吗? 任何帮助非常感谢

请检查我的代码的最后一位 - 是否需要/ foreach循环? 感谢

private void txtSid_Validating(object sender, CancelEventArgs e)
    {
        bool can = false;
        int sid = 0;


        if (string.IsNullOrEmpty(txtSid.Text))
        {

            ep1.SetError(txtSid, "Please Enter Student ID");
            can = true;
        }
        else if (!int.TryParse(txtSid.Text, out sid))
        {
            ep1.SetError(txtSid, "Student ID must be a number");
            can = true;
        }
        else
         for (int i = 0; i < lstDisplay.Items.Count; i++)
        {

            if (lstDisplay.Items[i].ToString().Contains(txtSid.Text))
            {
             ep1.SetError(txtSid, "Student ID already added");
            can = true;
            }
        {
                        }

        e.Cancel = can;
    }

1 个答案:

答案 0 :(得分:0)

是的,您可以使用错误提供程序。事实上,对于你正在进行的就地验证,我倾向于选择它们。我尝试限制弹出框,因为它们可能会让用户烦恼。例如,错误提供程序,以及禁用“保存”按钮,可以提供一个继续的块以及有关原因的信息,所有这些都没有恼人的弹出窗口。

至于检查列表框中已有的项目,是的,我会循环检查它们,一次检查一个。如果它们很多,或者性能非常关键,那么您可以为添加到列表框的项目实现自定义比较器。它们也可以是一个定制类,以促进所有这些的机制。