扫雷游戏制作过程(C#描述):第五节、菜单操作(续)

前言

这里给出教程原文地址
该项目已经放在github上托管。
发布版已经分享到百度网盘

菜单操作(续)

接着节前一章节的内容,我们继续完善菜单栏的功能。
我们首先,先完善Rank的选项,我们希望我们的效果是在我们点击Rank后,能弹出一个窗口,上面显示记录;那么我们就需要建立一个新的窗口,在右侧找到解决方案资源管理器,右击MineSweeper项目名,选择添加,如图所示:
1219808-20170830233533155-751282531.png
1219808-20170830233543077-316076890.png

找到右下方的属性面板,修改一些属性:

  • 将新建的窗口Icon属性修改为扫雷的图标。
  • MaximizeBox属性修改为False
  • Name属性修改为Form_Rank
  • BackColor属性修改为White
  • Text属性修改为MineSweeper
  • FormBorderStyle属性改为FixedSingle

接着在Rank窗口上做如下操作:

  • 在左边工具箱面板下公共控件中找到Label控件,双击添加到窗口中,Text属性修改为初级:,并移动到合适的位置(中级和高级同理)。
  • 在左边工具箱面板下公共控件中找到textBox控件,双击添加到窗口中,Name属性修改为TextBox_Beginner,并移动到合适的位置(中级和高级同理)。
  • 在左边工具箱面板下公共控件中找到Button控件,双击添加到窗口中,Text属性修改为重置Name属性改为Reset,并移动到合适的位置(取消同理,Name改为Cancel)。

效果如下:
1219808-20170830233553155-429259402.png

现在我们又有三个数据初级记录,中级记录,高级记录需要保存下来,双击Settings,做如下修改:
1219808-20170830233602499-482605865.png

分别双击重置按钮和取消按钮,进入其代码区,进行如下修改:

private void Reset_Click(object sender, EventArgs e)
{
    Properties.Settings.Default.beginner = 999999999;
    Properties.Settings.Default.intermediate = 999999999;
    Properties.Settings.Default.expert = 999999999;
    Properties.Settings.Default.Save();

    this.TextBox_Beginner.Text = "999999999";
    this.TextBox_Importmediate.Text = "999999999";
    this.TextBox_Export.Text = "999999999";                
}
private void Cancel_Click(object sender, EventArgs e)
{
    this.Close();
}

我们希望Form_Rank窗口在弹出时,便显示数据,所以需要在对其进行初始化:

public Form_Rank()
{
    InitializeComponent();
    this.TextBox_Beginner.Text = string.Format("{0}", Properties.Settings.Default.beginner);                
    this.TextBox_Importmediate.Text = string.Format("{0}", Properties.Settings.Default.intermediate);
    this.TextBox_Export.Text = string.Format("{0}", Properties.Settings.Default.expert);
}

现在Form_Rank窗口已经做的差不多了,现在需要在按下菜单栏中的Rank,跳出此窗口,并且此Form_Rank窗口出现在Sweeper窗口的正中央。回到Sweeper.cs,双击菜单栏中的Rank,进入其代码区,做如下修改:

private void RankRToolStripMenuItem_Click(object sender, EventArgs e)
{
    Form_Rank k = new Form_Rank();
    int h = (this.ClientSize.Height - k.ClientSize.Height) / 2;
    int w = (this.ClientSize.Width - k.ClientSize.Width) / 2;
    k.Show();
    k.Location = new Point(this.Location.X + w, this.Location.Y + h); //控制位置
}

运行后效果如下:
1219808-20170830233615655-671954628.png

对于声音Audio,我们需要把声音设置保存到Settings中,如下图:
1219808-20170830233626187-532849483.png

双击Audio,进入代码区,做如下修改:

private void AudioAToolStripMenuItem_Click(object sender, EventArgs e)
{
    Properties.Settings.Default.Audio = !Properties.Settings.Default.Audio;
    AudioAToolStripMenuItem.Checked = Properties.Settings.Default.Audio;
    Properties.Settings.Default.Save();
}

并在程序开始运行时,需要初始化在函数public Form_Main()增加:

AudioAToolStripMenuItem.Checked = Properties.Settings.Default.Audio; //初始化音量设置

运行效果如下:
1219808-20170830233638405-568451749.png

双击菜单Help下的about,进入其代码区,做一些修改(此处本人做的粗糙,你可以发挥你的想象力,进行更改)

private void AboutAToolStripMenuItem_Click(object sender, EventArgs e)
{
    MessageBox.Show("Author: pengpeng\n\nVersion:1.0.1", "about");
}

运行后效果如下
1219808-20170830234656749-1082600451.png

转载于:https://www.cnblogs.com/pengpeng123/p/7456022.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值