窗口中有多个label控件,鼠标移上去时改变它的背景色,离开时恢复原来的背景色。
private void label1_MouseHover(object sender, EventArgs e)
{
..........;
}
private void label2_MouseHover(object sender, EventArgs e)
{
..........;
}
private void label3_MouseHover(object sender, EventArgs e)
{
..........;
}
.
.
.
private void labeln_MouseHover(object sender, EventArgs e)
{
..........;
}
如何简化到一个类事件(用一个过程来搞定上面的所有过程)来处理呢?
private void label1_MouseHover(object sender, EventArgs e)
{
..........;
}
private void label2_MouseHover(object sender, EventArgs e)
{
..........;
}
private void label3_MouseHover(object sender, EventArgs e)
{
..........;
}
.
.
.
private void labeln_MouseHover(object sender, EventArgs e)
{
..........;
}
如何简化到一个类事件(用一个过程来搞定上面的所有过程)来处理呢?
this.label1.MouseHover += new EventHandler(labeln_MouseHover);
this.label2.MouseHover += new EventHandler(labeln_MouseHover);
{
label1.BackColor = Color.LightSkyBlue;
}
private void label2_MouseHover(object sender, EventArgs e)
{
label2.BackColor = Color.LightSkyBlue;
} 那用
this.label1.MouseHover += new EventHandler(labeln_MouseHover);
this.label2.MouseHover += new EventHandler(labeln_MouseHover);
后 private void labeln_MouseHover(object sender, EventArgs e)
{
???;
}
中的代码如何填写呢?
2.在时间里面调用SENDER参数,因为SENDER代表是那个标签发出的事件!for(int i=0;i<3;i++)
{
label lab=new label();
lab.name=i;
lab.MouseHover += new EventHandler(lab_MouseHover);
}private void labeln_MouseHover(object sender, EventArgs e)
{
label lab=sender as label;//具体发出事件的LABEL对象
messagebox.show("这是"+lab.name,"提示");
}
改成:private void lab_MouseHover(object sender, EventArgs e)
{
((label)sender).BackColor = Color.LightSkyBlue;
}
private void label1_Event(object sender, EventArgs e)
{
if(sender.equal(label1)) // 判断是谁激发
{
}
else if()
{
}
//
}
{
//如果所有的LABEL都设为一个颜色的话,这么做就可以了.
((Label)sender).BackColor = Color.LightSkyBlue;
}