gpt4 book ai didi

c# - 验证按钮上的输入单击winforms c#

转载 作者:行者123 更新时间:2023-12-02 17:40:47 25 4
gpt4 key购买 nike

我在验证文本框中的用户输入时遇到了一个小问题。

有一个带有各种文本框的用户控件,用户可以在其中输入数据以将新记录添加到数据库中。当这些文本框中的任何一个没有正确的值(空值或特定值)时,我希望取消插入并让“出错”文本框获得焦点。

这必须通过一个按钮来检查。我可以调用按钮的 Validating 事件,还是有其他(更好)的方法来实现此目的?

此外,还有一个取消按钮可以取消整个插入。当尝试使用 errorprovider 时,取消按钮也变得不可用,因为该字段为空,因此无法发送。

一些引用代码:

private void CheckInput(CancelEventArgs e, TextBox tb)
{
ErrorProvider error = new ErrorProvider();
if (string.IsNullOrEmpty(tb.Text))
{
error.SetError(tb, "*");
e.Cancel = true;
}

if (!string.IsNullOrEmpty(tb.Text))
{
error.SetError(tb, string.Empty);
error.Clear();
error.Dispose();
}
}

最佳答案

创建 ErrorProvider 的单个实例并将其放在您的表单上。在验证每个单独的控件期间不要创建错误提供程序。然后订阅文本框Validating事件(您可以对所有文本框使用相同的处理程序):

private void textBox_Validating(object sender, CancelEventArgs e)
{
TextBox tb = (TextBox)sender;

if (String.IsNullOrEmpty(tb.Text))
{
errorProvider.SetError(tb, "*");
e.Cancel = true;
return;
}

errorProvider.SetError(tb, String.Empty);
}

为了避免在单击“取消”按钮时进行验证,将其设置为 CauseValidation属性设置为 false

更新:因此您正在验证用户控件中的控件,您应该在单击“取消”按钮时禁用该验证:

private void CancelButton_Click(object sender, EventArgs e)
{
userControl.AutoValidate = AutoValidate.Disable;
Close();
}

关于c# - 验证按钮上的输入单击winforms c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21114902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com