опитвам се да направя приложение, което чертае мрежова карта, използвам панел във форма и в този панел, създаден динамично 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(object sender,EventArgs event,Color linecolor) !?
искам да изпратя повече от 1 обект към метод
извинете ме за дългия въпрос и съжалявам, ако не мога да опиша въпроса си (английският ми език не е добре).