C#图形绘制和类实例化
在课本上做练习,但被卡住了。我需要画一个简单的木棍图形。但是我需要创建Face,Body类,并在主要部分调用它。我在谷歌上搜索过,但似乎找不到答案 下面是一种尝试: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
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);
}
}