(C# Windows 窗体应用程序)如何重新启动应用程序

障碍

我刚刚完成了 Head First C# 中的一个练习,在那里我构建了一个打字游戏。该书将其留给读者以弄清楚如何制作,以便玩家一旦输了就可以开始新的游戏。用户输掉游戏后,窗口显示“游戏结束”消息。我想弹出一个新窗口,询问用户在屏幕上关闭游戏后是否愿意再次玩游戏。我想要两个按钮;一个说“不”,一个说“是”。我所坚持的是,如果用户决定要再次播放,我应该(或将)如何重新启动应用程序。我将在下面复制并粘贴我的代码:

namespace _7HeadFirstProject
{
    public partial class Form1 : Form
    { 
        Random random = new Random();
        Stats stats = new Stats();

        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            // Add a random key to the ListBox
            listBox1.Items.Add((Keys)random.Next(65, 90));
            if (listBox1.Items.Count > 7)
            {
                listBox1.Items.Clear();
                listBox1.Items.Add("Game Over");
                timer1.Stop();
            }
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            // If the user pressed a key that's in the ListBox... 
            // ... remove it and then make the game a little faster
            if (listBox1.Items.Contains(e.KeyCode))
            {
                listBox1.Items.Remove(e.KeyCode);
                listBox1.Refresh();
                if (timer1.Interval > 400)
                    timer1.Interval -= 10;
                if (timer1.Interval > 250)
                    timer1.Interval -= 7;
                if (timer1.Interval > 100)
                    timer1.Interval -= 2;
                difficultyProgressBar.Value = 800 - timer1.Interval;

                // The user pressed a correct key, so update the Stats object...
                // ...by calling its Update() method with the argument true
                stats.Update(true);
            }
            else
            {
                // The user pressed an incorrect key, so update the Stats object...
                // ...by calling its Update() method with the argument false
                stats.Update(false);
            }

            // Update the labels on the StatusStrip
            correctLabel.Text = "Correct: " + stats.Correct;
            missedLabel.Text = "Missed: " + stats.Missed;
            totalLabel.Text = "Total: " + stats.Total;
            accuracyLabel.Text = "Accuracy: " + stats.Accuracy + "%";
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            MessageBox.Show("Would you like to play again?");
            if

        }
    }
}

不同的班级:

namespace _7HeadFirstProject
{
    class Stats
    {
        public int Total = 0;
        public int Missed = 0;
        public int Correct = 0;
        public int Accuracy = 0;

        public void Update(bool correctKey)
        {
            Total++;

            if (!correctKey)
            {
                Missed++;
            }
            else
            {
                Correct++;
            }

            Accuracy = 100 * Correct / Total;
        }
    }
}
编码Yoshi

你让整个游戏都在工作,所以不要管那个表格。将另一个表单添加到您的项目中,然后将新表单设置为启动表单。您可以通过打开Program.cs和修改此行将其设置为启动表单

 // Instead of Form1 put the name of your new form
Application.Run(new Form1());

双击新表单并将此代码放入其中:

// Note: Your load method may have a different name.
private void Form2_Load(object sender, EventArgs e)
{
    this.StartNewGame();
}

private void GameForm_FormClosed(object sender, FormClosedEventArgs e)
{
    if (MessageBox.Show("Continue?", "Continue?", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
        this.StartNewGame();
    }
}

private void StartNewGame()
{
    // Your game form may have a different name so change this to that name
    var gameForm = new Form2();
    gameForm.FormClosed += GameForm_FormClosed;
    gameForm.Show();
}

每次用户按下对话框上的 yes 按钮时,您都在创建一个全新的表单实例(游戏)。在这个新表单中,您还可以拥有一个数组来跟踪游戏总数和每场游戏的得分,以便在用户选择否的情况下显示它。您只需要这样的东西:

var games = new List<Stats>();
// keep adding to it every time you call StartNewGame() method.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用C#制作Windows窗体应用程序以接收来自串行端口的数据

来自分类Dev

如何在Windows Forms应用程序中重新启动backgroundworker?

来自分类Dev

如何在Windows窗体应用程序vc ++中导入C静态库

来自分类Dev

如何在C#Windows窗体应用程序中激活spellCheck?

来自分类Dev

C#-Windows窗体应用程序-保存文件

来自分类Dev

如何将C .DLL文件导入C#Windows窗体应用程序并调用其在标头中定义的函数?

来自分类Dev

如何在Windows WinRT / c#的设备/应用程序启动中启动后台任务

来自分类Dev

如何在C#Windows窗体应用程序中动态创建网格

来自分类Dev

在C ++ Windows窗体应用程序中打开新窗体

来自分类Dev

如何在C#Windows窗体应用程序中创建平滑的形状动画运动?

来自分类Dev

仅使用Windows窗体应用程序的C#游戏

来自分类Dev

如何在Windows窗体应用程序vc ++中导入C静态库

来自分类Dev

C#打印Windows窗体应用程序

来自分类Dev

如何在C#中从Windows窗体应用程序项目设置.dll文件的路径?

来自分类Dev

如何在C Sharp Windows窗体应用程序中从窗体2修改窗体3中的值

来自分类Dev

如何在Windows WinRT / c#的设备/应用程序启动中启动后台任务

来自分类Dev

如何在收到推送通知时启动/恢复Windows Phone 8.1 C#应用程序

来自分类Dev

C#Windows窗体应用程序关闭

来自分类Dev

将SQLite Windows窗体应用程序迁移到通用Windows应用程序(C#)

来自分类Dev

C#将Windows窗体应用程序添加到控制台应用程序

来自分类Dev

如何使C#Windows窗体应用程序适合屏幕

来自分类Dev

c# 如何在 Windows 窗体应用程序中使用方法?

来自分类Dev

重新启动 Windows 操作系统后如何重置应用程序设置?

来自分类Dev

如何模拟通过 C# Windows 窗体应用程序单击的链接,在本地生成文件?

来自分类Dev

将 c# 控制台应用程序转换为 c# windows 窗体应用程序

来自分类Dev

如何重新启动控制台应用程序 c# mono MacOS

来自分类Dev

Visual C# Windows 窗体应用程序不知道如何完成此问题

来自分类Dev

C# Windows 窗体应用程序 ListView:如何强制 ListView 不更新?

来自分类Dev

如何使 c# windows 窗体应用程序仅在一台 PC 上运行?

Related 相关文章

  1. 1

    如何使用C#制作Windows窗体应用程序以接收来自串行端口的数据

  2. 2

    如何在Windows Forms应用程序中重新启动backgroundworker?

  3. 3

    如何在Windows窗体应用程序vc ++中导入C静态库

  4. 4

    如何在C#Windows窗体应用程序中激活spellCheck?

  5. 5

    C#-Windows窗体应用程序-保存文件

  6. 6

    如何将C .DLL文件导入C#Windows窗体应用程序并调用其在标头中定义的函数?

  7. 7

    如何在Windows WinRT / c#的设备/应用程序启动中启动后台任务

  8. 8

    如何在C#Windows窗体应用程序中动态创建网格

  9. 9

    在C ++ Windows窗体应用程序中打开新窗体

  10. 10

    如何在C#Windows窗体应用程序中创建平滑的形状动画运动?

  11. 11

    仅使用Windows窗体应用程序的C#游戏

  12. 12

    如何在Windows窗体应用程序vc ++中导入C静态库

  13. 13

    C#打印Windows窗体应用程序

  14. 14

    如何在C#中从Windows窗体应用程序项目设置.dll文件的路径?

  15. 15

    如何在C Sharp Windows窗体应用程序中从窗体2修改窗体3中的值

  16. 16

    如何在Windows WinRT / c#的设备/应用程序启动中启动后台任务

  17. 17

    如何在收到推送通知时启动/恢复Windows Phone 8.1 C#应用程序

  18. 18

    C#Windows窗体应用程序关闭

  19. 19

    将SQLite Windows窗体应用程序迁移到通用Windows应用程序(C#)

  20. 20

    C#将Windows窗体应用程序添加到控制台应用程序

  21. 21

    如何使C#Windows窗体应用程序适合屏幕

  22. 22

    c# 如何在 Windows 窗体应用程序中使用方法?

  23. 23

    重新启动 Windows 操作系统后如何重置应用程序设置?

  24. 24

    如何模拟通过 C# Windows 窗体应用程序单击的链接,在本地生成文件?

  25. 25

    将 c# 控制台应用程序转换为 c# windows 窗体应用程序

  26. 26

    如何重新启动控制台应用程序 c# mono MacOS

  27. 27

    Visual C# Windows 窗体应用程序不知道如何完成此问题

  28. 28

    C# Windows 窗体应用程序 ListView:如何强制 ListView 不更新?

  29. 29

    如何使 c# windows 窗体应用程序仅在一台 PC 上运行?

热门标签

归档