C# 从控件 sender 操作当前控件
##前提
今天通过动态生成一系列TextBox控件后,想要实现鼠标移动(MouseMove)到控件上方时,当前TextBox控件变色,鼠标移开(MouseLeave)恢复颜色。
如果手动添加TextBox控件时很好实现,只需实现MouseMove和MouseLeave的点击事件就行。
只需这样:
private void textBox1_MouseMove(object sender, MouseEventArgs e)
{
textBox1.BackColor = Color.Orange;
}
private void textBox1_MouseLeave(object sender, EventArgs e)
{
textBox1.BackColor = Color.White;
}
可是动态生成的控件,当鼠标点击时,却不知道该控件是哪个控件,需要想办法确认该控件的ID。
这时,我想到了经常被我们忽略的sender。
// 就是这个 object sender !
private void textBox1_MouseMove(object sender, MouseEventArgs e)
{
textBox1.BackColor = Color.Orange;
}
sender是引发这个事件的object,你点击控件时,该控件被封装成object类型,所以你可以通过强转,获取你