Я пытаюсь создать приложение, которое рисует карту сети. Я использую панель в форме, а в этой панели создается динамически ShapeContainer как холст.
на этом холсте я создаю некоторую форму и линию динамически (для создания этих фигур я использую два метода)
для формы линии:
private void CreateLine(int StartX,int StartY,int EndX,int EndY,Color lineColor,String ControlName)
{
LineShape newline = new LineShape();
canvas.Parent = panMap;
newline.Parent = canvas;
newline.StartPoint = new Point(StartX+ZoomScale , StartY+ZoomScale );
newline.EndPoint = new Point(EndX + ZoomScale, EndY + ZoomScale);
newline.BorderColor = lineColor;
newline.BorderWidth = 2;
newline.BorderStyle = System.Drawing.Drawing2D.DashStyle.Solid;
newline.Name = "Link_" + ControlName;
newline.Tag = "Link_" + ControlName;
newline.BringToFront();
canvas.Shapes.Add(newline);
}
и для создания прямоугольника я делаю этот метод:
private void CreateBox(int X, int Y, int ObjectType)
{
ShapeContainer canvas = new ShapeContainer();
RectangleShape box = new RectangleShape();
box.Parent = canvas;
box.Size = new System.Drawing.Size(100, 90);
box.Location = new System.Drawing.Point(X, Y);
box.Name = "Box" + ObjectType.ToString();
box.BackColor = Color.Transparent;
box.BorderColor = Color.Transparent;
box.BackgroundImage = img.Images[ObjectType];
box.BackgroundImageLayout = ImageLayout.Stretch;
box.BorderWidth = 0;
}
я называю эти методы следующим образом:
CreateBox(600, 160, 4);
CreateBox(600, 200, 3);
CreateLine(75, 83, 227, 176, Color.Green, "1");
CreateLine(227, 176, 367, 95, Color.Green, "2");
---- теперь у меня есть проблема: 1. как установить имя для этой формы (для использования в другом методе)? например, в текстовом поле управления я использую это:
TextBox txtbx = (TextBox)Controls["txtCityName"];
что я могу сделать для формы?
как создать метод для этой формы? Например :
newline.Click += newliclick (отправитель объекта, событие EventArgs, Color linecolor) !?
я хочу отправить более 1 объекта в метод
извините меня за длинный вопрос и извините, если я не могу описать свой вопрос (мой английский язык не очень хорошо).