扫雷游戏制作过程(C#描述):第二节、界面设计
前言
扫雷界面设计
界面的设计,首先需要创建一个菜单栏。具体方法在左边找到工具箱窗口,展开其中的菜单和工具栏,找到MenuStrip选项,双击该选项便可在窗口中新建一个菜单栏,如图所示:

对于这个控件,我们还要修改它的一些属性。
- 在右下角属性框中修改它的Name属性,对每一个控件取一个有意义的名字,防止很多控件时,容易混淆。
- 单击“请在此键入”,输入“Game(&G)”,其中&G整体会显示成G这个字母下面加一个下划线,这样在用户使用的时候就可以通过按下字母G来访问这个按键了。(当然,顶层菜单还需要按下Alt键,例如Alt + G键。)
- 使用同样的方法创建另一个菜单栏,下图中的分割线,只需要输入一个减号,即“–”,再按下回车键即可得到。


至此,我们的菜单栏就制作完成了。接下来我们需要制作一个用来记录地雷数目以及用时的功能。我们选择工具箱中容器的TableLayoutPanel,双击该项目,会在窗口中创建一个TableLayoutPanel控件。同样我们先将它的Name属性修改为“TableLayoutPanel_Main”。展开它的Size属性,将Height属性修改为48。同时修改它的Dock属性,选择Bottom,如图所示:

同时将RowCount属性设置为1,ColumnCount属性设置为9。打开Columns属性对话框(这里进行一些解释,其中Column1、Column3、...、Column5、Column7、Column9为中心对称的,用来设置边距,不放置任何控件,纯粹为了排版需要)进行如图一下的修改:

接下来我们需要在Column2、Column8中分别放置地雷以及秒表的图标,表示剩余的地雷数目以及已用时长。而Columns4、Columns6中分别放置用于显示地雷数目以及已用时长的文本。
在工具箱中展开公共控件,找到PictureBox,将它拖动到TableLayoutPanel的第二个列中,设置如下属性。
- 将它的Name属性设置为“PictureBox_Bomb”。
- Dock属性设置为Fill(表示充满整个页面,此处的页面即TableLayoutPanel中Column2全部)
- BackgroundImage属性定位到图标文件(通过导入按钮)。
- BackgroundImageLayout属性设置为Stretch(表示自动缩放图像大小)。
使用同样的方法加入一个PictureBox控件,将它放到Column8中其中(图片文件请补入Resources文件夹中),图片导入的方法如下图所示:

接下来我们需要添加两个用于显示内容的Label控件,展开工具箱中的公共控件,找到Label控件,分别拖动到Column4和Column6,并且设置
- 将Dock属性设置为Fill。
- TextAlign属性设置为MiddleCenter(使文字显示在控件中心)
- Font属性设置为“宋体, 12pt”(即宋体,字号小四)。
- Name属性及Text属性分别修改为Label_Bomb和Lable_Timer。同时将它们的ForeColor属性设置成自己喜欢的颜色(这项属性用于设置文字显示的颜色)。
至此界面已经基本完成了,但是我们还需要增加一个控件——Timer,用来计时。展开工具箱中的组件,双击Timer。这个控件不会在界面上显示,但是会在后台进行计时功能。同样,我们将它进行如下设置:
- Name属性修改为“Timer_Main”。
- Interval属性修改为“1000”(这里为计时间隔,以毫秒为单位,此处为1000毫秒,即1秒计时一次)。
最后按下Ctrl + F5进行编译查看结果,相较于第一节中的界面已经有了很大的改观,如图所示:
图7

扫雷游戏制作过程(C#描述):第二节、界面设计的更多相关文章
- 扫雷游戏制作过程(C#描述):第四节、菜单操作
前言 这里给出教程原文地址. 该项目已经放在github上托管. 菜单操作 我们现在的程序单击菜单的时候不会有任何反应,这一节我们主要介绍菜单的相关代码,使得菜单能够正常使用. 现在我们希望在对应级别 ...
- 扫雷游戏制作过程(C#描述):第一节、创建项目
前言 起初做扫雷是同学在做,我也跟着做了.做的比较low,其实第一次做这种东西,自己对自己的要求也不高,注重在了解一下,一个app应用程序是怎么产生的..net开发平台,用c#敲的.建议大家一些不懂的 ...
- 扫雷游戏制作过程(C#描述):第五节、菜单操作(续)
前言 这里给出教程原文地址. 该项目已经放在github上托管. 发布版已经分享到百度网盘 菜单操作(续) 接着节前一章节的内容,我们继续完善菜单栏的功能. 我们首先,先完善Rank的选项,我们希望我 ...
- 扫雷游戏制作过程(C#描述):第三节、雷区绘制
前言 这里给出教程原文地址. 该项目已经放在github上托管. 绘制雷区 这一节我们主要涉及界面中雷区的绘制.绘制雷区需要三个变量来保存雷区行数.列数.以及地雷的数量.而且我们希望能够自动获取上次游 ...
- Unity3D_(游戏)2D简单游戏制作过程:捕获高空掉落保龄球
游戏介绍:通过鼠标的左右移动,可以控制帽子的移动,当帽子接到下落的保龄球时,会出现火花效果.没有接到保龄球时,保龄球落到草地上,过10S后会自动消失. 实现效果: 素材+Unity3D源代码:传送 ...
- Winform打砖块游戏制作step by step第二节---.画挡板
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 预备知识,无GDI画图基础的童鞋请先阅读一篇文章让你彻底弄懂WinFor ...
- [NOIP2015 普及组] 扫雷游戏
[NOIP2015 普及组] 扫雷游戏 难度:入门 题目描述 扫雷游戏是一款十分经典的单机小游戏.在nn行mm列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- HTML5游戏制作完全指南
简介 创建画布 游戏循环 Hello world 创建player 键盘控制 a:使用jQuery Hotkeys b:移动player 添加更多游戏元素 炮弹 敌人 使用图片 碰撞检测 声音 简介 ...
随机推荐
- django开发者模式中的autoreload是怎样实现的
在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可以运行服务,并且提供了非常人性化的autoreload机制, ...
- easyui 菜单按钮&提示框
<script type="text/javascript"> function updatePwd(){ alert('修改密码'); } </script&g ...
- Maven干货2
回顾: 1. maven核心 a) 依赖管理:对jar统一管理.根据坐标(groupId,artifactId,version)去找jar包,本地,私服,中央仓库 b) 项目构建:通过命令构建.cle ...
- 基于tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)
基于tensorflow的‘端到端’的字符型验证码识别 1 Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展 ...
- 【每天一道算法题】Numeric Keypad
题目描述 The numberic keypad on your mobile phone looks like below: 123 456 789 0 suppose you are hold ...
- javascript中的时间版运动
前面的话 速度版JS运动是指以速度为参照,随着路程的变化,时间随之变化:而时间版JS运动是指以时间为参照,随着路程的变化,速度随着变化.相较而言,时间版JS运动更为常用.JQ的animate就是时间版 ...
- 第一阶段项目(2 body)
body属性 <div class="H1"> <div class="top-nav"> <div class="tn ...
- tensorflow笔记(二)之构造一个简单的神经网络
tensorflow笔记(二)之构造一个简单的神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7425200.html ...
- HTML的第一课
今天是第一天学习HTML,老师讲的内容不是很多,内容也比较简单.但是标签的数量很多,在做作业时十分不熟练,很多标签需要重新看它的意思.而且有很多标签在一起用的时候容易搞混.学的标签中有很多地方是通用的 ...
- CentOS7下搭建hadoop2.7.3完全分布式
这里搭建的是3个节点的完全分布式,即1个nameNode,2个dataNode,分别如下: CentOS-master nameNode 192.168.11.128 CentOS-node1 ...