2014-01-07 3 views
-1

Моя проблема заключается в том, чтобы нарисовать простую линию в дочернем окне в C#, то есть:Рисунок в дочернем окне - C#

  • У меня есть родительское окно, с помощью кнопки. Нажав на кнопку, отобразится дочернее окно, и на ней нарисована линия.

Ну, как это сделать? Это мой код для детского окна:

public partial class Form2 : Form 
{ 
    Pen pen; 
    public Form2() 
    { 
     InitializeComponent(); 
     pen = new Pen(Color.Black); 
    } 


    private void Form2_Paint(object sender, PaintEventArgs e) 
    { 
     Graphics g; 
     g = this.CreateGraphics(); 
     e.Graphics.DrawLine(pen, 10, 10, 100, 100); 
    } 

} 

Спасибо.

+0

Это работает для меня. –

+0

Что именно не работает для вас? Окно дочернего окна не отображается, строка не отображается и т. Д. –

+0

@Adrian Faciu Отображается дочернее окно, но строка не нарисована. –

ответ

4

Следующий код лучше:

private void Form2_Paint(object sender, PaintEventArgs e) 
{ 
    Graphics g = e.Graphics; 
    using (Pen p = new Pen(Color.Black)) 
    { 
     g.DrawLine(pen, 10, 10, 100, 100); 
    } 
} 

использовать экземпляр графического от случая краски и используя синтаксис для автоматического Dispose объекта пера

Remeber называют Показать метод в родительском окне, как это :

private void button_Click(object sender, EventArgs e) 
{ 
    Form form2 = new Form2(); 
    form2.ShowDialog(); 
} 
+0

Извините, но это не сработало. –

+1

@EB Вы пишете ** метод Form2_Paint ** вручную? вы не можете регистрировать событие в файле Designer графическим дизайнером GUI. – CzBiX

+0

Не писал вручную. Я зарегистрировал мероприятие обычным способом. –

Смежные вопросы