簡體   English   中英

C#如何在Windows窗體上的兩個對象之間畫一條線?

[英]C# How do I draw a line between two objects on a windows form?

很長時間以來,我一直在試圖在兩個對象之間畫一條線,但是它仍然行不通。

我的程序應該制作兩個圖片框(已經制作好,稱為PB1和PB2),並將它們與表格上的一行連接起來。

我有這個:

public void DrawStuff(object sender, PaintEventArgs e)
    {
        Pen blackPen = new Pen(Color.Black, 3);
        Point point1 = new Point(PB[0].Location.X, PB[0].Location.Y);
        Point point2 = new Point(PB[1].Location.X, PB[1].Location.Y);

        e.Graphics.DrawLine(blackPen, point1, point2);
        CreateGraphics();
    }

但是我不能調用該函數! 另外,盒子是用一個按鈕創建的,因此它不能從一開始就繪制,必須在按下按鈕后才能進行繪制。 如果有人有有效的代碼,請告訴我,我將要崩潰。

  1. 不要(永遠不要讀CreateGraphics()顯式調用CreateGraphics() 除極少數情況外,這是危害人類罪。
  2. 處理Form Paint事件(或重寫OnPaint() )。 在其中編寫線條畫代碼。

像這樣:

protected override void OnPaint(PaintEventArgs e)
{
  base.OnPaint(e);

  using(var blackPen = new Pen(Color.Black, 3))
    e.Graphics.DrawLine(blackPen, PB[0].Location, PB[1].Location);
}
  1. 每當您需要手動刷新屏幕時,請調用this.Invalidate()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM