在 C# 中绘制要形成的图形



我想从绘制形状的外部脚本调用一个函数。

表单当前打开为空白,上面没有形状,也没有错误。

下面是从不同文件调用函数的空形式

public partial class Form1 : Form
{
other_fff functions1 = new other_fff();
public Form1()
{
InitializeComponent();
functions1.draw_circle(this);
}
}

下面是我获得绘图功能的地方

class other_fff
{
public void draw_circle(Form1 the_form)
{
Pen Pen1 = new Pen(Color.Blue, 9);
Graphics g = the_form.CreateGraphics();
g.DrawEllipse(Pen1, 50, 50, 10, 5); // does not work 
}
}

我怎样才能进行这次抽奖

您可以像这样向 paint-event 添加一个事件处理程序:

public static void DrawCircle(Form form)
{
form.Paint += OnPaint;
void OnPaint(object sender, PaintEventArgs e)
{
using (var Pen1 = new Pen(Color.Blue, 9))
{
e.Graphics.DrawEllipse(Pen1, 50, 50, 10, 5);
}
}
}

有许多缺点:

  • 除非您添加一些取消注册事件的方法,否则无法删除圆圈。
  • 管理绘制调用的顺序将
  • 很困难,因为它将取决于事件处理程序的添加顺序。
  • 外部零件在窗体上绘制有点奇怪。通常,如果需要,窗体和控件应管理自己的绘制。

您可能希望通知表单它应该绘制一个椭圆,并让表单代替绘制。

相关内容

  • 没有找到相关文章

最新更新