views:

98

answers:

2

I am creating dynamic labels and letting users change attributes of the labes like backcolor and so by sending unicode. However I don't know how to check if the label exists therefore I can't manipulate the dynamicly created label. below is my code:

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();
    }
}

Any suggestions?

A: 
  • you may set buttlbl_ as a class member so you can check if it is created
  • before creation you can find it in this.Controls collection (by id)
Arseny
A: 

I think you've approached this problem incorrectly. You are apparently trying to offer the user an opportunity to edit these textboxes using a language-based interface. You either need to build a full parser to help you here or to look at an alternative paradigm, perhaps following the same approach that VS uses to allow you to create and edit labels via a GUI-type interface. That way you can maintain a tighter control over the actions that can be completed without the complexity of 'natural' language parsing.

Lazarus