有多个label,通过单击一个label为颜色选择器中的每一个颜色块注册一个单击事件,通过单击颜色选择器中的颜色块,怎么获取到是点击的哪个label,并为其设置颜色?
Label [] labels = new Label[4];//动态创建label并为label注册事件
for (int i = 0,y = 0; i < 4; i++,y++)
{
labels[i] = new Label();
labels[i].Size = new System.Drawing.Size(14,30);
labels[i].Location = new System.Drawing.Point(0,20+30*y);
labels[i].Click += new EventHandler(label_Click);
groupColor.Controls.Add(labels[i]);
void label_Click(object sender, EventArgs e)
{
Label lbl = sender as Label;
panelColor.Enabled = true;
InitColorControl();
}
//初始化颜色选择器
private void InitColorControl()
{
foreach (Control ctl in panelColor.Controls)
{
ctl.Click += new EventHandler(ctl_Click);
}
} void ctl_Click(object sender, EventArgs e)
{
Control lbl = sender as Control;
if (lblChoose12 == lbl)//自定义颜色
{
colorDialog1.ShowDialog();
} }
Label [] labels = new Label[4];//动态创建label并为label注册事件
for (int i = 0,y = 0; i < 4; i++,y++)
{
labels[i] = new Label();
labels[i].Size = new System.Drawing.Size(14,30);
labels[i].Location = new System.Drawing.Point(0,20+30*y);
labels[i].Click += new EventHandler(label_Click);
groupColor.Controls.Add(labels[i]);
void label_Click(object sender, EventArgs e)
{
Label lbl = sender as Label;
panelColor.Enabled = true;
InitColorControl();
}
//初始化颜色选择器
private void InitColorControl()
{
foreach (Control ctl in panelColor.Controls)
{
ctl.Click += new EventHandler(ctl_Click);
}
} void ctl_Click(object sender, EventArgs e)
{
Control lbl = sender as Control;
if (lblChoose12 == lbl)//自定义颜色
{
colorDialog1.ShowDialog();
} }
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货