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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pictureBox, сохранение текущего состояния 
:(
    Опции темы
kolhozniypunk
Дата 4.7.2011, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 9.7.2008

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



Всех приветствую.
Уже которую неделю не могу разобраться, изучаю графику C#. Работаю в VS 2003.
Задача проста, как грабли, просто нарисовать линии, использую PictureBox, нарисовать одну линию получается, но я не могу понять, как сохранить текущее состояние, вот код:
Код

System.Drawing.Drawing2D.GraphicsState gs;
Point currentPoint;
Point beginPoint;
bool drawLine;
System.Drawing.Pen curPen = new Pen(Brushes.Aqua);
Graphics g;
public Form1()
{
    InitializeComponent();
    g = Graphics.FromHwnd(pictureBox1.Handle);
    gs = g.Save();
}
private void pictureBox1_Click(object sender, System.EventArgs e)
{
    if(drawLine == true) 
    {
        drawLine = false;
        gs = g.Save();
    } 
    else 
    {
        drawLine = true;
        beginPoint = currentPoint;
    }
}
private void putPixel(int x, int y) 
{
    g.Clear(Color.Transparent);
    g.Restore(gs);
    g.DrawLine(curPen,beginPoint,new Point(x,y));
}

private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
    currentPoint = new Point(e.X,e.Y);
    if(drawLine == true) 
    {
        putPixel(e.X,e.Y);
    }
}

Рисую первую линию - рисуется, когда опять кликаю мышью - предыдущая линия пропадает...
PM MAIL   Вверх
cream
Дата 7.7.2011, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 23.7.2010

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



Строки 28, 29 ?
PM MAIL   Вверх
kolhozniypunk
Дата 7.7.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 9.7.2008

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



Цитата(cream @  7.7.2011,  14:50 Найти цитируемый пост)
Строки 28, 29 ?


Что в них не так? Если я правильно понимаю жизнь:

Код

    g.Clear(Color.Transparent);

Очищает PictureBox - это смутило?
Код

    g.Restore(gs);

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

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


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

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


 




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


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

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