[問題] 動態標籤的動態移除

看板C_Sharp作者 (672012)時間16年前 (2010/01/21 20:04), 編輯推噓0(008)
留言8則, 4人參與, 最新討論串1/2 (看更多)
我原本的構想是在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

01/22 00:11, , 1F
可以定義ID,pictureBox應該有FindControl吧
01/22 00:11, 1F

01/22 00:43, , 2F
你宣告了一個label_ok變數,只會指向你最後指定的new Labe
01/22 00:43, 2F

01/22 00:43, , 3F
l() instance
01/22 00:43, 3F

01/22 00:43, , 4F
所以不管你怎麼remove都只會remove掉最後一個instance
01/22 00:43, 4F

01/22 01:05, , 5F
加入label的同時 順便指派label的mouseClick事件處理
01/22 01:05, 5F

01/22 01:06, , 6F
用事件的sender去做移除......
01/22 01:06, 6F

01/22 08:20, , 7F
感謝回答,可以請問一樓定義ID的動作如何做嗎?
01/22 08:20, 7F

01/22 08:22, , 8F
再請教4樓的指派動作要如何寫,是將mouseClick寫在裡面嗎?
01/22 08:22, 8F
文章代碼(AID): #1BM4Augz (C_Sharp)
文章代碼(AID): #1BM4Augz (C_Sharp)