Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2011, 19:37   #1
AndersonEgo
 
Регистрация: 25.05.2011
Сообщений: 8
Вопрос Как отображать изображение на пикчербоксе или панели?

Здравствуйте,делаю редактор на шарпе(в вин.формз)

Получилось создать линию и эллипс,но рисовать их могу только на форме,как сделать чтоб рисовать их на панели или на пикчербоксе?
код:
Код:
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        // Variables
        private Bitmap bitmap = null;
        private Bitmap curBitmap = null;
        private bool dragMode = false;
        private int drawIndex = 1;
        private int curX, curY, x, y;
        private int diffX, diffY;
        private Graphics curGraphics;
        private Pen curPen;
        private SolidBrush curBrush;
        private Size fullSize;
 
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // Get the full size of the form
            fullSize = SystemInformation.PrimaryMonitorMaximizedWindowSize;
            // Create a bitmap using full size
            bitmap = new Bitmap(fullSize.Width, fullSize.Height);
            // Create a Graphics object from Bitmap
            curGraphics = Graphics.FromImage(bitmap);
            // Set background color as form's color
            curGraphics.Clear(this.BackColor);
            // Create a new pen and brush as default pen and brush
            curPen = new Pen(Color.Black);
            curBrush = new SolidBrush(Color.Black);
       }
 
        
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            // If dragMode is true, draw the selected
            // graphics shape
            if (dragMode)
            {
                switch (drawIndex)
                {
                    case 1:
                        {
                            g.DrawLine(curPen, curX, curY, x, y);
                            break;
                        }
                    case 2:
                        {
                            g.DrawEllipse(curPen,
                              curX, curY, diffX, diffY);
                            break;
                        }
                    
                }
            }
 
        }
        private void RefreshFormBackground()
        {
            curBitmap = bitmap.Clone(
              new Rectangle(0, 0, this.Width, this.Height),
              bitmap.PixelFormat);
            this.BackgroundImage = curBitmap;
        }
 
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            // Save file dialog
            SaveFileDialog saveFileDlg = new SaveFileDialog();
            saveFileDlg.Filter =
            "Image files (*.bmp)|*.bmp|All files (*.*)|*.*";
            if (saveFileDlg.ShowDialog() == DialogResult.OK)
            {
                // Create bitmap and call Save method
                // to save it
                Bitmap tmpBitmap = bitmap.Clone
                  (new Rectangle(0, 0,
                  this.Width, this.Height),
                  bitmap.PixelFormat);
                tmpBitmap.Save(saveFileDlg.FileName,
                  System.Drawing.Imaging.ImageFormat.Bmp);
            }
 
        }
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            // Dispose of all public objects
            curPen.Dispose();
            curBrush.Dispose();
            curGraphics.Dispose();
 
        }
 
 
    }
}
AndersonEgo вне форума Ответить с цитированием
Старый 29.05.2011, 22:32   #2
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

а что мешает вызывать обработчик Paint у нужного компонента?
или же
Код:
Graphics g = pictureBox1.CreateGraphics();
Life if about choices
Make the right choice

Последний раз редактировалось TaTT DoGG; 29.05.2011 в 22:35.
TaTT DoGG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перемещать изображение по панели? AndersonEgo C# (си шарп) 3 27.05.2011 10:05
Как сделать фон панели непрозрачным или картинку в делфи?? Klik_1602 Помощь студентам 0 08.05.2011 19:21
скрывать или отображать столбцы с "флажка" Иванов_ДМ Microsoft Office Excel 3 02.03.2009 13:22
Отображать лист по user name или паролю Dorvir Microsoft Office Excel 5 13.05.2008 11:36