public Form1()
{
InitializeComponent(); Pen p = new Pen(Color.Yellow); Graphics gThin = pictureBox1.CreateGraphics();
gThin.DrawLine(p, 50, 50, 100, 100); //PersonThinBuilder ptb = new PersonThinBuilder(gThin, p);
//ptb.Build();
}
程序运行以后,看不到线啊。
如果说放在paint里面,这个方法我不知道怎么用,麻烦给一个详细一些的解答。
谢谢了。
Graphics gThin = e.Graphics;而我看的书上,写的是
Graphics gThin = pictureBox1.CreateGraphics();
不知道这两段代码有什么区别?
那三句话如果放在Form的paint事件里,或者点击按钮触发等事件里,用CreateGraphics()可以得到画板对象,但这样得手动触发或窗体重绘时才化;
如果放在pictureBox的paint事件中,一般用e.Graphics得到本对象的画板对象。
private void Form1_Load(object sender, System.EventArgs e)
{
pictureBox1.Dock = DockStyle.Fill;
pictureBox1.BackColor = Color.White;
pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint); this.Controls.Add(pictureBox1);
}private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics; g.DrawString("This is a diagonal line drawn on the control",
new Font("Arial",10), System.Drawing.Brushes.Blue, new Point(30,30));
g.DrawLine(System.Drawing.Pens.Red, pictureBox1.Left, pictureBox1.Top,
pictureBox1.Right, pictureBox1.Bottom);
}