Я пытаюсь сделать приложение, которое рисует сетевую карту Я использую панель в форме и в эту панель динамически создавал ShapeContainer как холст.Как присвоить имя 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, цвет linecolor)!?
я хочу послать больше чем 1 объект метода
извините за длинный вопрос и извините, если я не могу описать свой вопрос (мой английский язык не так).
его работы , tnx столько друг. – user3290286
это работа, tnx. но мне нужно отправить имя или индекс новой строки в метод. пожалуйста, покажите мне, какой код нужен, если я хочу показать имя новой строки, тег или индекс. (в форме load call CreateLine() или CreateBox() несколько раз. tnx снова. – user3290286