如果单击“对话框”的“是”按钮,则再次运行程序

时间:2012-08-12 16:27:28

标签: c#

我正在写一个成绩计算器,最后,我问用户是否还有其他成绩要计算。

 Console.Write("Do you have another grade to calculate? ");
        moreGradesToCalculate = Console.ReadLine();
        moreGradesToCalculate = moreGradesToCalculate.ToUpper();

我想显示一个对话框,其中包含选项“是”或“否”。

如果DialogResult为Yes,我希望能够再次运行程序,如果结果为No,我希望能够执行其他操作。

4 个答案:

答案 0 :(得分:1)

您应该使用do...while(...)循环。

答案 1 :(得分:0)

您可以使用do/while构建

do {
     Console.Write("Do you have another grade to calculate Y/N? "); 
     var moreGradesToCalculate = Console.ReadLine().ToUpper();
     if(moreGradesToCalculate == "Y")
        //do something  
     else if(moreGradesToCalculate == "N")
         break;

}while(true);

答案 2 :(得分:0)

我认为再次运行整个程序并不是一个好主意,只需重新开始计算等级的数字(将代码包装在一个循环中)。

对于DialogBox,只需导入System.Window.Forms程序集并使用它:

DialogResult result = MessageBox.Show("Do you want to start over?", "Question", MessageBoxButtons.YesNo);

if (result == DialogResult.No) {
    // TODO: Exit the program
}

答案 3 :(得分:0)

如果需要对话框,则必须添加对System.Windows.Forms的引用,并在文件顶部为同一命名空间添加using语句。然后,您只需检查在Do-While循环结束时在Show对象上调用MessageBox方法的结果。例如:

do
{
    // Grading calculation work...

}
while (MessageBox.Show("Do you have another grade to calculate?",
    "Continue Grading?", MessageBoxButtons.YesNo) == DialogResult.Yes);

这会一直循环,直到用户点击否。

如果您不想继续使用鼠标,请在命令行上执行以下操作:

ConsoleKeyInfo key = new ConsoleKeyInfo();
do
{
    // Grading work...

    Console.WriteLine("\nDo you want to input more grades? (Y/N)");
    do
    {
        key = Console.ReadKey();
    }
    while (key.Key != ConsoleKey.Y && key.Key != ConsoleKey.N);
}
while (key.Key == ConsoleKey.Y);

以下是有关循环的参考资料的链接 - 或来自Microsoft的“迭代语句”。 Do-While是您刚开始时应该尝试学习的少数人之一:

http://msdn.microsoft.com/en-us/library/32dbftby.aspx