作者awd (672012)
看板C_Sharp
标题[问题] 动态标签的动态移除
时间Thu Jan 21 20:04:05 2010
我原本的构想是在picturebox上
用滑鼠於任意处点一下
就会在那一点出现一个动态标签叫ok
点n个位置就会出现n个ok标签
这部份我是写好在pictureBox1_Click里,大致如下:
Label label_ok; <---我放在Form外的全域变数
private void pictureBox1_Click(object sender, EventArgs e)
{
....
label_ok = new Label();
label_ok.Text = "ok";
label_ok.Location = new Point(X, Y);
label_ok.AutoSize = true;
pictureBox1.Controls.Add(label_ok);
}
现在想要新增功能
希望用滑鼠去点过标签的位置用滑鼠点"两"下就可以取消它
也就是之前点过的位置可对应去取消掉ok标签
这部份我是写在pictureBox1_MouseDoubleClick里
我用pictureBox1.Controls.Remove(label_ok);
却不能移掉相对应的标签
只能移掉最後一次点的标签....
想请教各位是否有什麽地方需要修正的
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.189.251
1F:→ juriolegend:可以定义ID,pictureBox应该有FindControl吧 01/22 00:11
2F:→ liunate:你宣告了一个label_ok变数,只会指向你最後指定的new Labe 01/22 00:43
3F:→ liunate:l() instance 01/22 00:43
4F:→ liunate:所以不管你怎麽remove都只会remove掉最後一个instance 01/22 00:43
5F:→ bdvstg:加入label的同时 顺便指派label的mouseClick事件处理 01/22 01:05
6F:→ bdvstg:用事件的sender去做移除...... 01/22 01:06
7F:→ awd:感谢回答,可以请问一楼定义ID的动作如何做吗? 01/22 08:20
8F:→ awd:再请教4楼的指派动作要如何写,是将mouseClick写在里面吗? 01/22 08:22