1、sender事件发起者,表示那边触发事件这边接收事件,//sender事件的发起者,根据这个senter找到事件的发起者(就相当于当找到对应密码才可进入)
eg:Timer tubaozha=(Timer)sender;//更具前面的类型转换并起名再赋类型。前面事件类型不同,则触发事件类型不同
注:全局变量时,不用sender,局部变量嵌套使用要sender,找事件的发起者
2、e参数,代表指定的键/代表事件对象/代表第三方/事件触发对象(谁触发代表谁)为事件提供数据
(1)e.KeyChar//设置或获取与按下键对应的字符
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
//sender事件发起者
//e参数,代表指定的键/代表事件对象/代表第三方/事件触发对象(谁触发代表谁)
// e.KeyChar//设置或获取与按下键对应的字符
//因为是多个键,所以循环便利
foreach (Control item in YX.Controls)
{
if (item.Text==e.KeyChar.ToString()&&item.Tag.ToString()=="zm")//item.Tag.ToString()=="zm"字母时对应产生一个子弹,不会同时产生多个
{
item.Tag = "zmbiaoji";//该标记,就不会产生多余子弹
tupianplsyer.Left = item.Left + item.Width / 2 - tupianplsyer.Width / 2;
//同样的中轴线,字母的距离left的距离加上,字母宽的一半,减上飞机图片的一半就是,飞机left的距离
//创建子弹
PictureBox zidan = new PictureBox();
zidan.Tag = "zd";
zidan.Size = new Size(8, 18);
zidan.SizeMode = PictureBoxSizeMode.StretchImage;
zidan.Image = Image.FromFile(@"../../img/Ammo1.png");
zidan.Left = tupianplsyer.Left + tupianplsyer.Width / 2 - zidan.Width / 2;
zidan.Top = tupianplsyer.Top -zidan.Height;
YX.Controls.Add(zidan);
//跳出当前事件
return;//跳出整个事件,如果给return下面写则全部跳出//判断只出现一个
}
}
}