私はc#を初めて使用し、フォームに線を引くのに苦労しています。ここに私がこれまでに持っているコードがあります。
Graphics g;
g = this.CreateGraphics();
Pen myPen = new Pen(Color.Red);
myPen.Width = 30;
g.DrawLine(myPen, 30, 30, 45, 65);
g.DrawLine(myPen, 1, 1, 45, 65);
OnPaint
でお試しください
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics g;
g = e.Graphics;
Pen myPen = new Pen(Color.Red);
myPen.Width = 30;
g.DrawLine(myPen, 30, 30, 45, 65);
g.DrawLine(myPen, 1, 1, 45, 65);
}
あなたが見ているものをあなたが言わなかったので、それは本当に質問ではありません。
これを行う正しい方法は、フォームのPaint
イベントハンドラーにあります。 e
引数からグラフィックスオブジェクトを取得します。それを試して、あなたが見るものを私たちに知らせてください。
線を描画するオブジェクトのPaintイベントで描画する必要があります。したがって、Paintイベントのe
パラメータのEventArgs
変数でGraphicsオブジェクトを使用するだけです。 VB.NETの例を次に示します。
Private Sub ExampleLinkLabel_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles lnkMyLinkLabel.Paint
Dim lbl As LinkLabel = DirectCast(sender, Label)
Dim pen1 As New System.Drawing.Pen(Color.Black, 1)
Dim topLeft As New Point(0, 0)
Dim topRight As New Point(lbl.Width - 1, 0)
Dim bottomLeft As New Point(0, lbl.Height - 1)
Dim bottomRight As New Point(lbl.Width - 1, lbl.Height - 1)
e.Graphics.DrawLine(pen1, topLeft, topRight)
e.Graphics.DrawLine(pen1, bottomLeft, bottomRight)
e.Graphics.DrawLine(pen1, topRight, bottomRight)
End Sub
private void Form1_Paint(object sender, PaintEventArgs e)
{
....
}
イニシャライザから実行します。
public Form1()
{
InitializeComponent();
this.Paint += new System.Windows.Forms.PaintEventHandler(Form1_Paint);
}