zoukankan      html  css  js  c++  java
  • 扫雷游戏制作过程(C#描述):第五节、菜单操作(续)

    前言

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

    菜单操作(续)

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

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

    • 将新建的窗口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)。

    效果如下:

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

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

    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); //控制位置
    }
    

    运行后效果如下:

    对于声音Audio,我们需要把声音设置保存到Settings中,如下图:

    双击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; //初始化音量设置
    

    运行效果如下:

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

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

    运行后效果如下

  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/pengpeng123/p/7456022.html
Copyright © 2011-2022 走看看