看板 C_Sharp 關於我們 聯絡資訊
我原本的構想是在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