我有一个更简单的窗体输入(学生姓名,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;
}
答案 0 :(得分:0)
是的,您可以使用错误提供程序。事实上,对于你正在进行的就地验证,我倾向于选择它们。我尝试限制弹出框,因为它们可能会让用户烦恼。例如,错误提供程序,以及禁用“保存”按钮,可以提供一个继续的块以及有关原因的信息,所有这些都没有恼人的弹出窗口。
至于检查列表框中已有的项目,是的,我会循环检查它们,一次检查一个。如果它们很多,或者性能非常关键,那么您可以为添加到列表框的项目实现自定义比较器。它们也可以是一个定制类,以促进所有这些的机制。