Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#图形绘制和类实例化_C#_Winforms_Class_Drawing - Fatal编程技术网

C#图形绘制和类实例化

C#图形绘制和类实例化,c#,winforms,class,drawing,C#,Winforms,Class,Drawing,在课本上做练习,但被卡住了。我需要画一个简单的木棍图形。但是我需要创建Face,Body类,并在主要部分调用它。我在谷歌上搜索过,但似乎找不到答案 下面是一种尝试: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; using System.Drawing.Drawing2

在课本上做练习,但被卡住了。我需要画一个简单的木棍图形。但是我需要创建Face,Body类,并在主要部分调用它。我在谷歌上搜索过,但似乎找不到答案

下面是一种尝试:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

public class stickFace : Form
{
    protected override void OnPaint(PaintEventArgs e)
    {
        Graphics draw = e.Graphics;
        Pen black = new Pen(Color.Black, 3);

        draw.DrawEllipse(black, 20, 20, 100, 100);

        base.OnPaint(e);
    }
}

public class stickBody : Form
{
    protected override void OnPaint(PaintEventArgs e)
    {
        // Draw Line codes goes here
        base.OnPaint(e);
    }
}

public class StickFigure : Form
{
    public StickFigure()
    {
        Size = new Size(500, 300);
        Text = "Stick Figure";
        BackColor = Color.White;
    }

    public static void Main()
    {
        // Call the stickface and stickBody Class
    }
}
如何在Main方法中实例化StickFace和StickBody?还是我的代码完全错了。

Program.cs StickBody.cs
我认为您应该在OnPaint事件中直接使用GDI+绘制组件,而不是从表单库继承。stickBody和stickFace类从表单类继承没有多大意义,因为它们不是表单。相反,您可以从表单中删除它们的继承,并给它们每个draw(Graphics g)方法,它将在主窗体的OnPaint方法中调用。
 static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        Application.Run(new stickFace());
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

public class stickFace : Form
{
     public stickFace()
    {
        new stickBody(this);
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        Graphics draw = e.Graphics;
        Pen black = new Pen(Color.Black, 3);

        draw.DrawEllipse(black, 20, 20, 100, 100);

        base.OnPaint(e);
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

 public class stickBody : Form
{
    public stickBody(stickFace obj)
    {

    }

    protected override void OnPaint(PaintEventArgs e)
    {//lines of code.....

        base.OnPaint(e);
    }
}