当用户单击文本框时显示一个消息框
本文关键字:消息 一个 显示 用户 单击 文本 | 更新日期: 2023-09-27 17:58:23
我目前已经设置好了,当按下按钮并且文本框值不正确时,它会显示一个消息框。当我只测试一个文本框时,这是可以的,但当我想测试多个文本框,当多个消息框开始出现时,就会变得混乱。
有没有一种方法可以设置它,当用户点击离开文本框时,消息框就会闪烁。
例如,我希望文本框文本为"World",用户在文本框中填充文本"hello"。然后,使用鼠标点击进入下一个文本框。当他这样做时,会出现消息框。
我对此有矛盾的想法,因为用户可以点击消息框上的"x",然后点击第三个文本框,这将再次提示消息框,造成麻烦。如果我能得到一些建议,也许是更好的方法,那就太好了。
我总共有3个文本框,都需要填写,我想检查每个文本框是否有无效条目。我尝试了触摸离开事件,但它不起作用。谢谢你的帮助。
private void Button_Click(object sender, RoutedEventArgs e)
{
name = textbox_Name.Text;
if (name != "World")
{
MessageBox.Show("Invalid Entry for name.");
}
age = textbox_age.Text;
if (age != "World")
{
MessageBox.Show("Invalid Entry for age.");
}
gender = textbox_gender.Text;
if (gender != "World")
{
MessageBox.Show("Invalid Entry for gender.");
}
}
将逻辑更改为在单击按钮时只生成一个消息框。您可以在该框中显示输入的问题,如果姓名和年龄错误,您可以列出这两个问题。它只是需要一些额外的逻辑。我不知道您需要什么逻辑,但下面是一个简单的示例,显示了一个非特定的验证错误。
private void Button_Click(object sender, RoutedEventArgs e)
{
name = textbox_Name.Text;
age = textbox_age.Text;
gender = textbox_gender.Text;
if (gender != "World" || name != "World" || age!="World" )
{
MessageBox.Show("Invalid Entry.");
}
}
就TextChanged事件而言,我建议在TextChanged上突出显示它,正如上面的评论中所建议的那样。它对用户来说不那么烦人。然后,如果用户单击按钮让他们知道需要修复红色文本框,则可以显示单个MessageBox。
最简单的方法是验证setter。
public string name
{ get;
set
{
if (value != "Hello")
MessageBox.Show("Blah");
else
{ name = value; }
}
}
private void button1_Click(object sender, EventArgs e)
{
name = textbox_Name.Text;
}
尝试使用TextBox。LostFocus通过这种方式,您可以以编程方式选中之后的每个文本框。
name = textbox_Name.Text;
age = textbox_age.Text;
gender = textbox_gender.Text;
textbox_Name.LostFocus+=delegate
{
if (name != "World")
{
MessageBox.Show("Invalid Entry for name.");
}
};
textbox_age.LostFocus+=delegate
{
if (age != "World")
{
MessageBox.Show("Invalid Entry for age.");
}
};
textbox_gender.LostFocus+=delegate
{
if (gender != "World")
{
MessageBox.Show("Invalid Entry for gender.");
}
};