WinForm 窗体应用程序 (初步)之二

本文介绍了基础控件如Label、TextBox等,并提供了一个使用PictureBox实现的拼图游戏实例,包含游戏逻辑与代码。

  现在,我们来了解一些基本控件。控件是放置在工具箱里的,你可以在界面的左侧或者通过菜单栏的视图选项找到它。

    (1)Label 控件 这是一个用于放置文字的控件,因为你不能在窗体上直接输入文字。

    (2)TextBox 文本框

    (3)Button 按钮

    (4)CheckBox 复选框

    (5)Panel  分组容器,类似于HTML中的div

    (6)PictureBox 图片框

    (7)WebBrowser 它可以允许用户在窗体内浏览网页,可用于制作浏览器

  下面附上笔者自制的一个拼图游戏及代码文件:

  1 using System;
  2 using System.Collections;
  3 using System.Collections.Generic;
  4 using System.ComponentModel;
  5 using System.Data;
  6 using System.Drawing;
  7 using System.Linq;
  8 using System.Text;
  9 using System.Threading.Tasks;
 10 using System.Windows.Forms;
 11 
 12 namespace WindowsFormsApplication1
 13 {
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18             InitializeComponent();
 19             ImgList = null;
 20         }
 21         #region 定义字段
 22         List<Image> _imgList;
 23         /// <summary>
 24         /// 定义属性
 25         /// </summary>
 26         public List<Image> ImgList
 27         {
 28             get { return _imgList; }
 29             set
 30             {
 31                 _imgList = new List<Image>();
 32                 _imgList.Add(pictureBox1.BackgroundImage);
 33                 _imgList.Add(pictureBox2.BackgroundImage);
 34                 _imgList.Add(pictureBox3.BackgroundImage);
 35                 _imgList.Add(pictureBox4.BackgroundImage);
 36                 _imgList.Add(pictureBox5.BackgroundImage);
 37                 _imgList.Add(pictureBox6.BackgroundImage);
 38             }
 39         }
 40         #endregion
 41         #region 开始按钮
 42         private void button1_Click(object sender, EventArgs e)
 43         {
 44             //随机6个不同的数
 45             Random rd = new Random();
 46             int[] x = new int[6];
 47             for (int i = 0; i < 6; i++)
 48             {
 49                 x[i] = rd.Next(0, 6);
 50                 for (int j = 0; j < i; j++)
 51                 {
 52                     if (x[i] == x[j])
 53                     {
 54                         i--;
 55                         break;
 56                     }
 57                 }
 58             }
 59             //重新设置图像
 60             pictureBox1.BackgroundImage = ImgList[x[0]];
 61             pictureBox2.BackgroundImage = ImgList[x[1]];
 62             pictureBox3.BackgroundImage = ImgList[x[2]];
 63             pictureBox4.BackgroundImage = ImgList[x[3]];
 64             pictureBox5.BackgroundImage = ImgList[x[4]];
 65             pictureBox6.BackgroundImage = ImgList[x[5]];
 66             //倒计时开始,并允许玩家操作
 67             time = 5;
 68             label2.Text="5";
 69             timer1.Start();
 70             pictureBox1.Enabled = true;
 71             pictureBox2.Enabled = true;
 72             pictureBox3.Enabled = true;
 73             pictureBox4.Enabled = true;
 74             pictureBox5.Enabled = true;
 75             pictureBox6.Enabled = true;
 76         }
 77         #endregion
 78         #region 玩家操作
 79         //定义匹配变量
 80         int match = 0;
 81         //存储上一张图片
 82         PictureBox lpb = new PictureBox();
 83         //响应用户操作
 84         private void pictureBox1_Click(object sender, EventArgs e)
 85         {
 86             PictureBox pb = sender as PictureBox;
 87             //截取Name的最后一位作为唯一标识
 88             int n = int.Parse(pb.Name.Substring(10, 1));
 89             //判断是否已经正确归位,如果没有正确归位
 90             if (pb.BackgroundImage != ImgList[n - 1])
 91             {
 92                 //重置参数
 93                 if (match == 2)
 94                 {
 95                     match = 0;
 96                 }
 97                 //交换背景图片
 98                 if (match == 1)
 99                 {
100                     Image img = pb.BackgroundImage;
101                     pb.BackgroundImage = lpb.BackgroundImage;
102                     lpb.BackgroundImage = img;
103                     //判断是否全部归位
104                     if (pictureBox1.BackgroundImage == ImgList[0] && pictureBox2.BackgroundImage == ImgList[1] && pictureBox3.BackgroundImage == ImgList[2] && pictureBox4.BackgroundImage == ImgList[3] && pictureBox5.BackgroundImage == ImgList[4] && pictureBox6.BackgroundImage == ImgList[5])
105                     {
106                         timer1.Stop();
107                         MessageBox.Show("恭喜您,顺利过关!");
108                     }
109                 }
110                 lpb = pb;
111                 match++;
112             }
113         }
114         #endregion
115         #region 计时功能
116         int time = 5;
117         private void timer1_Tick(object sender, EventArgs e)
118         {
119             if (time > 0)
120             {
121                 time--;
122                 label2.Text = time.ToString();
123             }
124             else
125             {
126                 //停止计时,并禁止玩家操作
127                 timer1.Stop();
128                 pictureBox1.Enabled = false;
129                 pictureBox2.Enabled = false;
130                 pictureBox3.Enabled = false;
131                 pictureBox4.Enabled = false;
132                 pictureBox5.Enabled = false;
133                 pictureBox6.Enabled = false;
134                 MessageBox.Show("很遗憾,游戏失败!");
135             }
136         }
137         #endregion
138 
139  
140 
141     }
142 }
View Code

 

转载于:https://www.cnblogs.com/xsddxz/p/5896361.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值