阻止用户转到下一个表单

时间:2012-12-23 17:08:43

标签: c# winforms textbox

我有Form TextBox。我想阻止用户在不填写黑色TextBox的情况下转到下一个表单。我怎么能这样做?

if(textBox.Text.Length == 0)
    MessageBox.Show("Have To Fill All The Fields!");

我还应该添加什么?

3 个答案:

答案 0 :(得分:3)

将处理程序添加到Validating事件并使用错误提供程序将验证错误设置为控制:

void textBox_Validating(object sender, CancelEventArgs e) 
{
  string error = null;
  if(textBox.Text.Length == 0 ) {
    error = "Please enter this value";
    e.Cancel = true;
  }
  errorProvider1.SetError((Control)sender, error);
}

您可以为多个文本框控件使用相同的处理程序(只需使用事件参数中的发件人来获取特定的文本框实例)。

答案 1 :(得分:1)

private void Form_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (textBox.Text.Length == 0)
        {
            MessageBox.Show("Please fill the field");
            e.Cancel = true;
        }
    }

答案 2 :(得分:0)

你还想要什么?
代码将类似于移动下一个表单

protected void btn_Click(object sender, EventArgs e)
{
     if(textBox.Text.Length == 0)
     {
          MessageBox.Show("Have To Fill All The Fields!");
          textBox.focus();
     }
     else
     {
          // Work to move on next form
     }
}