如何阻止程序运行

时间:2014-03-12 15:07:39

标签: c# visual-studio-2010 return

我正在尝试创建一个车牌发电机。无论何时运行,它都会创建一个随机牌照。但是,如果没有输入名称,我需要停止程序继续生成牌照,几乎就像暂停它直到输入所有信息。我知道我需要一个返回功能,但我不知道如何使用它。这是迄今为止的代码:

if (string.IsNullOrWhiteSpace(NameTextBox.Text))
{
    userAnswer = MessageBox.Show("Please enter a valid name for the motorist", "Error Message", MessageBoxButtons.YesNo);

    if (userAnswer == DialogResult.No)
    {
        Application.Exit();
    }

    sb.Append(currentTime);
    ActivityrichTextBox.Text = ActivityrichTextBox.Text + sb.ToString();

    sb.Clear();
    sb.Append("**Error** failed to enter a valid name");
    ActivityrichTextBox.Text = ActivityrichTextBox.Text + " " + sb.ToString() + Environment.NewLine;

    sb.Clear();

我知道如果没有输入名字,它会在这里停止。

2 个答案:

答案 0 :(得分:3)

好的,我会给你一个模式,因为你的问题似乎没有经过深思熟虑。基本上我理解你想要在触发某种动作时验证用户输入,比方说,按下一个按钮。通常这会是这样的:

public void btnButton_Clicked(object sender, EventArgs e)
{
    if (String.IsNullOrWhiteSpace(textBox.Text))
    {
        MessageBox.Show("You did not enter text!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        textBox.Focus();
        return; // <=== This exits the btnButton_Clicked method until the button is clicked again
    }

    // Do stuff here if text *was* entered
}

所以在你的情况下,这将是这样的:

if (string.IsNullOrWhiteSpace(NameTextBox.Text))
{
    MessageBox.Show("Please enter a valid name for the motorist", "Error Message", MessageBoxButtons.OK);

    sb.Clear();
    sb.Append(currentTime);
    sb.AppendLine(" **Error** failed to enter a valid name");

    ActivityrichTextBox.Text = ActivityrichTextBox.Text + sb.ToString();
    return;
}

请不要正确使用StringBuilder为活动日志创建新行。

答案 1 :(得分:1)

我假设您是以Win Form形式进行的。如果是这样,那么您不需要暂停程序,只需使用事件来处理您的需求。创建一个按钮,将单击事件附加到该按钮。用户点击按钮后,检查名称文本框是否为空,如果是,则显示错误消息,如果没有,则调用return;然后继续。