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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2013, 15:11   #1
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию Рамка поверх Picture

Есть picture 100х100 пикселей нужно зделать рамку по краю picture.
Код:
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = Graphics.FromHwnd(this.Handle);
            g.DrawRectangle(new Pen(Color.Black, 2), pictureBox1.Left + 1, pictureBox1.Top + 1, pictureBox1.Width - 2, pictureBox1.Height - 2);
            g.Dispose();
        }
Но рамка рисуеться под picture, как сделать чтоб рисовалась над?
Или есть другие способы нарисовать прямоугольник над рамкой?
Painkiller_13 вне форума Ответить с цитированием
Старый 01.08.2013, 17:08   #2
Painkiller_13
Пользователь
 
Регистрация: 07.07.2011
Сообщений: 58
По умолчанию

Нашел способ
Код:
 private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
                Pen moicvet = new Pen(System.Drawing.ColorTranslator.FromHtml("#" + color));
                moicvet.Width = 2.0F;
                Graphics g = e.Graphics;
            g.DrawLines(moicvet, new PointF[] { new PointF(0, 0), new PointF(1, 95) });
            g.DrawLines(moicvet, new PointF[] { new PointF(0, 95), new PointF(95, 95) });
            g.DrawLines(moicvet, new PointF[] { new PointF(95, 95), new PointF(95, 1) });
            g.DrawLines(moicvet, new PointF[] { new PointF(95, 0), new PointF(1, 1) });
            //g.Dispose();
            moicvet.Dispose();
}
Так как я это событие использую много раз то цвет "Рамки" устанавливается первый раз и потом его изменить не получаеться. А функция g.Dispose(); привод к крашу при старте программы.

Последний раз редактировалось Painkiller_13; 01.08.2013 в 17:11.
Painkiller_13 вне форума Ответить с цитированием
Старый 01.08.2013, 19:49   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Вообще-то, достаточно в коде из первого поста заменить первую строчку на такую
Код:
Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование в picture box (C#) ne11son Общие вопросы .NET 6 14.11.2015 00:36
Compress Picture a_zheshko Microsoft Office Word 4 11.04.2011 11:48
Resize picture artush1984 Общие вопросы C/C++ 0 28.12.2010 15:45
Office Picture manager малыша Софт 1 18.08.2009 13:51