在TextBox_Leave事件中,我需要检查在文本框中输入的数字是否在序列号中。如果它不是按顺序,那么我需要显示一条消息,因为“数字”缺失
例如:
在文本框中,我输入了3并单击了标签: 我需要将消息显示为 “数字不按顺序,数字”1“和”2“缺失”
答案 0 :(得分:7)
我不知道这是否也适用于c#2.0,这是我在c#3.0中的经验:
为什么要使用TextBox_Leave?验证事件应该用于验证输入是否正确。
使用Validating-event和使用ErrorProvider组合(您可以将它从工具箱拖到表单上)来设置错误消息:它将显示为红色三角形中的(闪烁)感叹号。
ErrorProvider还可以阻止任何提交操作。
答案 1 :(得分:1)
一个技巧是在尝试离开时(例如使用TAB)在文本框中保留焦点,以防出现某些情况(缺少数字):
private void textBox1_Leave(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
if (tb.Text == "3")
tb.Focus();
}
假设您使用的是标准文本框。您还可以使用第三方控件,在某些情况下可以取消事件(e.Cancel = true)。
答案 2 :(得分:1)
尝试使用蒙面文本框控件,并为此类字段验证设置自定义属性。
答案 3 :(得分:1)
或者您也可以使用文本框的验证事件。
private void textBox1_Validating( object sender, CancelEventArgs e )
{
if ( textBox1.Text == "3" )
e.Cancel = true;
}
文本框在收到有效输入之前不会失去焦点。
答案 4 :(得分:0)
我将向您展示如何验证Validating WinForms TextBox
(在C#中)。
创建一个函数:
public static void ChkBlankTextBoxes(object sender, string type)
{
if (sender is TextBox)
{
TextBox textbox = sender as TextBox;
if (string.IsNullOrEmpty(textbox.Text))
{
MessageBox.Show("Please enter correct value value..");
textbox.Focus();
}
}
}
调用创建的函数:
ChkBlankTextBoxes(txt_userID, textBoxtype);
ChkBlankTextBoxes(txt_password, textBoxtype);