Новичок
Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.5.2009
Репутация: нет Всего: нет
|
Здравствуйте! Есть проблема с выводом изображения из класса MyPictureBox на Form1, если выводить изображение на форму то нормально, а вот вывести изображение на panel1 расположенную в Form1 не получается. Подскажите, пожалуйста, как это можно сделать. Вот пример кода | Код | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Выделение_объектов_мышкой { public class MyPictureBox : PictureBox { public string txt; public int Layer; public int ID; public int posit = 0; public string name; public void MyPicBox() { ID = 0; name = "PictureBox"; ImageLocation = ""; Size = new Size(50, 50); Location = new Point(50, 50); BackColor = Color.FromArgb(100, 100, 100); MouseDown += pictureBox_MouseDown; } private void pictureBox_MouseDown(object sender, MouseEventArgs e) { BackColor = Color.FromArgb(0, 0, 0); SquerPB(); } public void SquerPB() { int xmin, ymin, xmax, ymax; Point[] mass2 = new Point[4]; Pen myPen = new Pen(Color.Black, 1); Graphics formGraphics = Form1.ActiveForm.CreateGraphics(); xmin = 20; ymin = 10; xmax = 50; ymax = 100; mass2[0].X = Convert.ToInt16(xmin); mass2[0].Y = Convert.ToInt16(ymin); mass2[1].X = Convert.ToInt16(xmax); mass2[1].Y = Convert.ToInt16(ymin); mass2[2].X = Convert.ToInt16(xmax); mass2[2].Y = Convert.ToInt16(ymax); mass2[3].X = Convert.ToInt16(xmin); mass2[3].Y = Convert.ToInt16(ymax); Refresh(); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; formGraphics.DrawPolygon(myPen, mass2); Graphics formpoligonGraphics = Form1.ActiveForm.CreateGraphics(); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; SolidBrush solidBrush = new SolidBrush(Color.Blue); //Рисуем верхний левый квадрат formpoligonGraphics.DrawRectangle(myPen, xmin - 2, ymin - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, xmin - 2, ymin - 2, 5, 5); //Рисуем верхний средний квадрат formpoligonGraphics.DrawRectangle(myPen, ((xmax - xmin) / 2 + xmin) - 2, ymin - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, ((xmax - xmin) / 2 + xmin) - 2, ymin - 2, 5, 5); //Рисуем верхний правый квадрат formpoligonGraphics.DrawRectangle(myPen, xmax - 2, ymin - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, xmax - 2, ymin - 2, 5, 5); //Рисуем нижний левый квадрат formpoligonGraphics.DrawRectangle(myPen, xmin - 2, ymax - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, xmin - 2, ymax - 2, 5, 5); //Рисуем нижний средний квадрат formpoligonGraphics.DrawRectangle(myPen, ((xmax - xmin) / 2 + xmin) - 2, ymax - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, ((xmax - xmin) / 2 + xmin) - 2, ymax - 2, 5, 5); //Рисуем нижний правый квадрат formpoligonGraphics.DrawRectangle(myPen, xmax - 2, ymax - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, xmax - 2, ymax - 2, 5, 5); //Рисуем левый средний квадрат formpoligonGraphics.DrawRectangle(myPen, xmin - 2, ((ymax - ymin) / 2 + ymin) - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, xmin - 2, ((ymax - ymin) / 2 + ymin) - 2, 5, 5); //Рисуем правый средний квадрат formpoligonGraphics.DrawRectangle(myPen, xmax - 2, ((ymax - ymin) / 2 + ymin) - 2, 5, 5); formpoligonGraphics.FillRectangle(solidBrush, xmax - 2, ((ymax - ymin) / 2 + ymin) - 2, 5, 5); myPen.Dispose(); formGraphics.Dispose(); } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace Выделение_объектов_мышкой { public partial class Form1 : Form { public static MyPictureBox[] pbarray = new MyPictureBox[200]; public static int positionarray; public Form1() { InitializeComponent(); pbarray[positionarray] = new MyPictureBox(); pbarray[positionarray].posit = positionarray; pbarray[positionarray].Parent = panel1; pbarray[positionarray++].MyPicBox(); } } }
|
|