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