这个需要看你的代码,你的那个图片属性如何定义的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Whack_a_Mole
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
x = this.Width;
y = this.Height;
setTag(this);
}
#region 控件大小随窗体大小等比例缩放
private float x;//定义当前窗体的宽度
private float y;//定义当前窗体的高度
private void setTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width + ";" + con.Height + ";" + con.Left + ";" + con.Top + ";" + con.Font.Size;
if (con.Controls.Count > 0)
{
setTag(con);
}
}
}
private void setControls(float newx, float newy, Control cons)
{
//遍历窗体中的控件,重新设置控件的值
foreach (Control con in cons.Controls)
{
//获取控件的Tag属性值,并分割后存储字符串数组
if (con.Tag != null)
{
string[] mytag = con.Tag.ToString().Split(new char[] { ';' });
//根据窗体缩放的比例确定控件的值
con.Width = Convert.ToInt32(System.Convert.ToSingle(mytag[0]) * newx);//宽度
con.Height = Convert.ToInt32(System.Convert.ToSingle(mytag[1]) * newy);//高度
con.Left = Convert.ToInt32(System.Convert.ToSingle(mytag[2]) * newx);//左边距
con.Top = Convert.ToInt32(System.Convert.ToSingle(mytag[3]) * newy);//顶边距
Single currentSize = System.Convert.ToSingle(mytag[4]) * newy;//字体大小
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0)
{
setControls(newx, newy, con);
}
}
}
}
int count;//表示得分
int time;//表示时间
private void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
timer1.Enabled = true;
timer2.Enabled = true;
label1.Text = "游戏时间:30";
label3.Text = "游戏得分:0";
count = 0;
time = 30;
}
int num = 0;
private void timer1_Tick(object sender, EventArgs e)
{
Random rd = new Random();
int num = rd.Next(0, 9);
switch (num)
{
case 0:
invisiable();
pictureBox1.Visible = true;
break;
case 1:
invisiable();
pictureBox2.Visible = true;
break;
case 2:
invisiable();
pictureBox3.Visible = true;
break;
case 3:
invisiable();
pictureBox4.Visible = true;
break;
case 4:
invisiable();
pictureBox5.Visible = true;
break;
case 5:
invisiable();
pictureBox6.Visible = true;
break;
case 6:
invisiable();
pictureBox7.Visible = true;
break;
case 7:
invisiable();
pictureBox8.Visible = true;
break;
case 8:
invisiable();
pictureBox9.Visible = true;
break;
}
}
int flag = 0;
private void invisiable()//写一个能隐藏地鼠的函数
{
pictureBox1.Visible = false;
pictureBox2.Visible = false;
pictureBox3.Visible = false;
pictureBox4.Visible = false;
pictureBox5.Visible = false;
pictureBox6.Visible = false;
pictureBox7.Visible = false;
pictureBox8.Visible = false;
pictureBox9.Visible = false;
pictureBox1.Image = imageList1.Images[0];
pictureBox2.Image = imageList1.Images[0];
pictureBox3.Image = imageList1.Images[0];
pictureBox4.Image = imageList1.Images[0];
pictureBox5.Image = imageList1.Images[0];
pictureBox6.Image = imageList1.Images[0];
pictureBox7.Image = imageList1.Images[0];
pictureBox8.Image = imageList1.Images[0];
pictureBox9.Image = imageList1.Images[0];
flag = 0;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;//sender:在事件中获得引发事件的控件,在这里指的是Picturebox
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox2_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox3_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox4_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox5_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox6_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox7_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox8_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void pictureBox9_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer2.Ctlcontrols.play();
PictureBox pb = (PictureBox)sender;
pb.Image = imageList1.Images[1];
if (flag == 0)
{
flag = 1;
count++;
label3.Text = "游戏得分: " + count;
}
}
private void timer2_Tick(object sender, EventArgs e)
{
if (time == 0)
{
timer1.Enabled = false;
invisiable();
label1.Text = "游戏结束";
button1.Visible = true;
button1.Text = "再来一次";
}
else
{
time--;
label1.Text = "游戏时间: " + time;
}
}
private void 退出游戏ToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void 简单ToolStripMenuItem_Click(object sender, EventArgs e)
{
timer1.Interval = 1200;
timer2.Interval = 2400;
}
private void 困难ToolStripMenuItem_Click(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer2.Interval = 2000;
}
private void 地狱ToolStripMenuItem_Click(object sender, EventArgs e)
{
timer1.Interval = 800;
timer2.Interval = 1600;
}
private void 开启ToolStripMenuItem_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.play();
}
private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.stop();
}
private void Form1_Load(object sender, EventArgs e)
{
axWindowsMediaPlayer1.Ctlcontrols.play();
axWindowsMediaPlayer1.settings.setMode("loop", true);
axWindowsMediaPlayer2.Ctlcontrols.stop();
}
private void Form1_Resize(object sender, EventArgs e)
{
float newx = (this.Width) / x;
float newy = (this.Height) / y;
setControls(newx, newy, this);
}
}
}
#endregion