2012-12-18 106 views
6

我有一個面板稱爲PANEL1,我試圖借鑑使用此代碼我PANEL1一行:平局線沒有顯示出來

Graphics g = panel1.CreateGraphics(); 
     var p = new Pen(Color.Black, 3); 
     var point1 = new Point(234,118); 
     var point2 = new Point(293,228); 
     g.DrawLine(p, point1, point2); 

但沒有什麼是顯示出來。有任何想法嗎?這是一個窗體。

+0

你在paint()事件有這個? –

+0

我在構造函數中使用它 – Badmiral

回答

12

處理小組的Paint event並把它放在那裏。發生的事情是它在構造函數中被繪製一次,然後在每次被調用時在Paint事件中被繪製。

private void panel1_Paint(object sender, PaintEventArgs e) 
{ 
    base.OnPaint(e); 
    using(Graphics g = e.Graphics) 
    { 
     var p = new Pen(Color.Black, 3); 
     var point1 = new Point(234,118); 
     var point2 = new Point(293,228); 
     g.DrawLine(p, point1, point2); 
    } 
} 
+0

看到這條線的其他方法是創建一個按鈕,並在按鈕的OnClick方法中繪製線條,如下所示:private void btnDraw_Click(object sender,EventArgs e) { 圖形dc = drawingArea.CreateGraphics(); Pen BlackPen =新筆(Color.Black,2); dc.DrawLine(BlackPen,0,0,200,200); BlackPen.Dispose(); dc.Dispose(); } – Combine

2

放入一些活動已建立並在屏幕上顯示的形式後,它應該工作的罰款。

最好是把它的Paint事件,如keyboardP說,但它不會顯示出來,如果稱爲屏幕上顯示的形式之前。

爲了測試這一點,你可以添加一個按鈕和代碼添加到Click事件:

private void button1_Click(object sender, EventArgs e) 
{ 
    using (Graphics g = panel1.CreateGraphics()) 
    { 
     g.DrawLine(new Pen(Color.Back, 3), new Point(234,118), new Point(293,228)); 
    } 
} 
+0

也許最好是通過示例來引導並將其包裝在'using'語句中? :) –

+0

試圖改變摹定義,什麼都沒有發生改變 – Badmiral

+0

我的回答。我雖然不是這個問題。 –

0

要查看您的繪圖 - 你可以簡單地做一個按鈕,單擊事件,並單擊按鈕時借鑑。例如:

private void btnDraw_Click(object sender, EventArgs e) 
{ 
    Graphics dc = drawingArea.CreateGraphics(); 
    Pen BlackPen = new Pen(Color.Black, 2); 
    dc.DrawLine(BlackPen, 0, 0, 200, 200); 

    BlackPen.Dispose(); 
    dc.Dispose(); 
}  

哦,順便說一下「繪圖區」是(名稱),或者你已經添加到您的形式,一個PictureBox或面板(在失敗中汲取)。