0

WinForm で線を引くのに助けが必要です。

私が現在持っているコードは、ほとんどが MSDN から引き出されたものです。

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BouncingBall
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.Invalidate();
    }
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {

        // Insert code to paint the form here.
        Pen pen = new Pen(Color.FromArgb(255, 0, 0, 0));
        e.Graphics.DrawLine(pen, 10, 10, 300, 200);
    }
}

}

現在、このコードは何も描画しません。

4

2 に答える 2

1

投稿されたコードは問題ありません。フォームの中央に黒い線をレンダリングします。

ここに画像の説明を入力

あなたの問題は、フォームのPaintイベントがメソッドにサブスクライブしていないことだと思いますForm1_Paint。このメソッドをそこに置いて、魔法のように呼び出されることを期待することはできません。

フォームのコンストラクターに追加することで修正できます。

public Form1()
{
    InitializeComponent();
    this.Paint += Form1_Paint;
}

または、同じイベント サブスクリプションを行うデザイナーでこれを行うこともできますInitializeComponent()

于 2014-07-23T20:17:20.307 に答える
0

MSDNによると:

using System.Drawing;

Pen myPen;
myPen = new Pen(System.Drawing.Color.Red);
Graphics formGraphics = this.CreateGraphics();
formGraphics.DrawLine(myPen, 0, 0, 200, 200);
myPen.Dispose();
formGraphics.Dispose();

あなたのコードは実際には問題ないように見えますが、メソッドが起動していると確信していますか?

于 2014-07-23T20:14:12.843 に答える