我需要帮助在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);
}
}
}
目前,此代码根本没有绘制任何内容。
答案 0 :(得分:1)
您发布的代码很好。它在表单中间呈现一条黑线:
我怀疑您的问题是您没有订阅Paint
方法的表单Form1_Paint
事件。你不能只把这个方法放在那里,并期望它被神奇地调用。
您可以通过将其添加到Form的构造函数来解决此问题:
public Form1()
{
InitializeComponent();
this.Paint += Form1_Paint;
}
或者,您可以在设计器中执行此操作,该设计器执行相同的事件订阅,它只是将其隐藏在InitializeComponent()
内。
答案 1 :(得分: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();
您的代码实际上看起来很好,您确定该方法正在解雇吗?