2010-06-03 88 views
2

我正在創建動態標籤,並讓用戶通過發送unicode來更改像backcolor等實驗室的屬性。但是,我不知道如何檢查標籤是否存在,因此我無法操作動態創建的標籤。以下是我的代碼:WinForms動態標籤

if ((InputBox.Text.StartsWith("π")) && (InputBox.Text.EndsWith("}")))// only process if the message starts with π and ends with } 
{ 
    string Message = InputBox.Text; 
    InputBox.Text = "";// Clear the box when done. 

    // Butt1 message line 
    if (Message.StartsWith("πlabelt1")) 
    { 
     if (Message.StartsWith("πlabelt1_BackColor")) 
     { 
      Message = Message.Substring(19); 
      //labelt1.BackColor = System.Drawing.Color.FromName(Message.Replace("}", "")); 
     } 
    } 

    private void ImageBox_DragDrop(object sender, DragEventArgs e) 
    { 
     //Graphics g = ImageBox.CreateGraphics(); 
     //g.DrawImage((Image)e.Data.GetData(DataFormats.Bitmap), 
     //new Point(e.X - this.Left, e.Y - this.Top - 150)); 
     Point p2 = PointToClient(Cursor.Position); 
     Label buttlbl_ = new Label(); 
     labelCount++; 
     buttlbl_.Name = "labelt" + labelCount.ToString(); 
     buttlbl_.Location = new Point(p2.X, p2.Y); 
     buttlbl_.Size = new System.Drawing.Size(37, 37); 
     buttlbl_.BackColor = System.Drawing.Color.DarkGray; 
     this.Controls.Add(buttlbl_); 
     buttlbl_.BringToFront(); 
     ImageBox.Invalidate(); 
    } 
} 

有什麼建議嗎?

回答

0
  • 你可以通過設置buttlbl_作爲一個類的成員,因此您可以檢查是否建立之前,形成
  • 它,你可以在this.Controls收集發現它(通過ID)
0

我想你」我錯誤地處理了這個問題。您顯然正嘗試爲用戶提供使用基於語言的界面編輯這些文本框的機會。您可能需要構建完整的解析器來幫助您,或者查看其他範例,或許遵循VS使用的相同方法,以允許您通過GUI類型的界面創建和編輯標籤。通過這種方式,您可以對可以完成的操作進行更嚴格的控制,而無需進行「自然」語言分析的複雜操作。