当用户单击文本框时显示一个消息框

本文关键字:消息 一个 显示 用户 单击 文本 | 更新日期: 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.");
   }          
};
相关文章: