作者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
→ juriolegend:可以定義ID,pictureBox應該有FindControl吧 01/22 00:11
→ liunate:你宣告了一個label_ok變數,只會指向你最後指定的new Labe 01/22 00:43
→ liunate:l() instance 01/22 00:43
→ liunate:所以不管你怎麼remove都只會remove掉最後一個instance 01/22 00:43
→ bdvstg:加入label的同時 順便指派label的mouseClick事件處理 01/22 01:05
→ bdvstg:用事件的sender去做移除...... 01/22 01:06
→ awd:感謝回答,可以請問一樓定義ID的動作如何做嗎? 01/22 08:20
→ awd:再請教4樓的指派動作要如何寫,是將mouseClick寫在裡面嗎? 01/22 08:22