Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод изображение на форму из другого класса 
:(
    Опции темы
ura1234
Дата 27.5.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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();
 
        }
}
}

PM MAIL   Вверх
ZmeyNet
Дата 28.5.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 25.1.2008
Где: Belarus, Minsk

Репутация: нет
Всего: нет



а что это мы ТУТ делаем ? 

Код

 Graphics formGraphics = Form.ActiveForm.CreateGraphics();


PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0398 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.