gpt4 book ai didi

c# - 在动态创建的图片框上画线

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:29 25 4
gpt4 key购买 nike

例如,我需要在动态创建的 PictureBox 中画一条线。发生的情况是图片框已创建并显示在表单中,但缺少该行。我的代码在下面,有什么想法吗??谢谢

public void create_pb()
{
PictureBox pb = new PictureBox();
pb.Size = new Size(200, 200);
pb.BorderStyle = BorderStyle.Fixed3D;
pb.Location = new Point(0,0);
panel1.Controls.Add(pb);
g = pb.CreateGraphics();
Pen p = new Pen(Color.Black, 2);

g.DrawLine(p, 0, 0, 200, 200);
}

g 定义为 public Graphics g;

最佳答案

不要使用CreateGraphics。您需要在 Paint 事件处理程序中进行绘图,使用传递给您的事件参数中的 e.Graphics

否则,当下次重新绘制图片框时(例如,移动表单、调整大小、被另一个表单覆盖等),您的线条将被简单地删除。

例子:

pb.Paint += (sender, e) =>
{
Pen p = new Pen(Color.Black, 2);
e.Graphics.DrawLine(p, 0, 0, 200, 200);
};

关于c# - 在动态创建的图片框上画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com