我一次动态生成5个pictureBox,怎样才能点击哪个pictureBox让其背景变为红色呢,当再次点击另一个时,前面点击的又恢复原色。 public void ssss()
{
for (int i = 0; i < 5; i++)
{
PictureBox pic = new PictureBox();
pic.Image = Bitmap.FromFile(file);
pic.Location = new Point(0, i * 70);
this.panel1.Controls.Add(pic);
pic.Click += new EventHandler(pic_Click);
}
} void pic_Click(object sender, EventArgs e)
{
//怎么办呢?
}
{
for (int i = 0; i < 5; i++)
{
PictureBox pic = new PictureBox();
pic.Image = Bitmap.FromFile(file);
pic.Location = new Point(0, i * 70);
this.panel1.Controls.Add(pic);
pic.Click += new EventHandler(pic_Click);
}
} void pic_Click(object sender, EventArgs e)
{
//怎么办呢?
}
解决方案 »
- tcpclient 接收数据问题
- dataGridView 设置空白列
- win2000+office2000在导入excel时的问题???
- 我winform中,我在MDI中通过菜单打开一个子窗口,为什么子窗口上会有MDI的菜单呢?
- 关于SMTP发送邮件的问题,急!!
- 谁用过volatile,能讲讲有什么好处?
- c# chart 控件 Excel数据绑定问题
- 怎样获得两个DateTimePicker的天数差?并转换为int型
- C# 如何采集摄像头的视频,然后通过编码器和解码器在计算机上生成视频?回复有分,谢谢!
- 请教大侠,关于时间的两个菜鸟级问题
- Socket异常:你主机中的软件放弃了一个已建立的连接,经常报这个错误
- C#如何设计流程图界面?(界面上显示:直线,折线,箭头,方框等)
每创建个 PictureBox 的时候 pic.name="pic"+i.tostring()用来标志每个 PictureBox ;
void pic_Click(object sender, EventArgs e)
{
PictureBox pic =( PictureBox)sender;
switch(pic.name)
{
case pic1: this.pic1.backcolor=color.red; break;
case pic2: this.pic1.backcolor=color.red; this.pic1.backcolor=默认的颜色;break;
.......... }
private PictureBox oldPic = null;
void pic_Click(object sender, EventArgs e)
{
if(oldPic!=null) oldPic.BackColor = Color.默认颜色;
oldPic = ((PictureBox)sender);
oldPic.BackColor = Color.Red;
}