R.S*_*S.K 6 .net c# validation .net-3.5 winforms
我有一个Windows窗体项目,我想强制用户在按下底部的计算按钮之前在某些字段中输入值.这些字段包括三对单选按钮,五个文本框和一个组合框.所以基本上所有这些字段都需要包含一个值才能执行计算.此外,文本框应包含数字 - 任何双精度值.此外,我想为大多数这些文本框设置最大值用户不能超过.请让我知道实现这一目标的最简单方法是什么.我没有看到winform项目的字段验证控件,如ASP.Net中提供的控件.请注意,我正在研究.net 3.5.目前,我正在使用消息框将此信息传达给用户,即每当用户按下计算时,我会显示消息框,提示当前为空的所需字段的名称.
Zee*_*mal 11
我遇到了和你一样的情况,我找到了一个简单的解决方案,或者你可以说WinForms可以使用简单的解决方案.WinForms包含一个控件ErrorProvider,可以帮助我们在必填字段上显示错误.
这是您可以找到其使用的链接,或者只是谷歌它.
ErrorProvider可以按照您想要的方式使用,例如,对于文本框,您可以在TextChanged事件中或在任何其他让我们说按钮的事件内使用它,如下所示:
if (!int.TryParse(strNumber, out result))
{
errorProvider.SetError(tbNumber, "Only Integers are allowed");
}
else
{
errorProvider.Clear();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以试试这个:
private void Calculate_button_Click(object sender, EventArgs e)
{
RadioButton[] newRadioButtons = { radiobutton1, radiobutton2, radiobutton3 };
for (int inti = 0; inti < newRadioButtons.Length; inti++)
{
if (newRadioButton[inti].Checked == false)
{
MessageBox.Show("Please check the radio button");
newRadioButtons[inti].Focus();
return;
}
}
TextBox[] newTextBox = { txtbox1, txtbox2, txtbox3, txtbox4, txtbox5 };
for (int inti = 0; inti < newRadioButtons.Length; inti++)
{
if (newTextBox[inti].text == string.Empty)
{
MessageBox.Show("Please fill the text box");
newTextBox[inti].Focus();
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以循环遍历控件并查找它们是否已填充,如果未填充,它将显示在消息框中,并且特定控件将被聚焦。
小智 0
尝试使用控件的 Validating 事件并在其中编写您需要的任何验证。
下面是一个示例,它使用一些 ValidateEmail 函数来检查文本是否是电子邮件地址,如果不匹配,则将背景设置为某种(红色?)颜色,并且在匹配之前不允许用户离开控制权。
Private Sub VoucherEmail_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Textbox.Validating
If Not ValidateEmail(sender.Text) Then
sender.backcolour = Validation.ErrorBackgrounColor
e.Cancel = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)