C# C中的System.NullReferenceException错误#
对于学校来说,我们试图在windows窗体应用程序中绘制一辆汽车,它需要是OOP。表单中有4个按钮,一个用来画圆,一个用来画正方形,一个用来画整个汽车,还有一个用来让汽车行驶。我们制作了一个汽车类,它由两个圆圈和一个正方形组成,这个正方形应该是汽车的形状。当我们在car类中实例化一个新的圆时,我们得到一个System.NullReferenceException错误。我们如何解决这个问题?按钮3是创建汽车类。这是我们的代码: 这是我们的表格:C# C中的System.NullReferenceException错误#,c#,oop,C#,Oop,对于学校来说,我们试图在windows窗体应用程序中绘制一辆汽车,它需要是OOP。表单中有4个按钮,一个用来画圆,一个用来画正方形,一个用来画整个汽车,还有一个用来让汽车行驶。我们制作了一个汽车类,它由两个圆圈和一个正方形组成,这个正方形应该是汽车的形状。当我们在car类中实例化一个新的圆时,我们得到一个System.NullReferenceException错误。我们如何解决这个问题?按钮3是创建汽车类。这是我们的代码: 这是我们的表格: namespace Maissan_Autootje
namespace Maissan_Autootje_V1
{
public partial class Form1 : Form
{
Graphics g;
public Form1()
{
InitializeComponent();
g = this.CreateGraphics();
}
private void button1_Click(object sender, EventArgs e)
{
Refresh();
Square square = new Square(150, 200, 150, 100);
square.Draw(g);
}
private void button2_Click(object sender, EventArgs e)
{
Refresh();
Circle circle = new Circle(100, 250, 100, 100);
Circle circle2 = new Circle(280, 250, 100, 100);
circle.Draw(g);
circle2.Draw(g);
}
private void button3_Click(object sender, EventArgs e)
{
Auto auto = new Auto();
}
private void button4_Click(object sender, EventArgs e)
{
}
}
}
这是我们的圆圈(正方形与圆圈类几乎相同):
这应该是绘制汽车的类:
namespace Maissan_Autootje_V1
{
class Auto : Form1
{
Graphics g;
public Auto()
{
Circle circle = new Circle(100, 250, 100, 100);
Circle circle2 = new Circle(280, 250, 100, 100);
Square square = new Square(150, 200, 150, 100);
circle.Draw(g);
circle2.Draw(g);
square.Draw(g);
}
}
}
提前谢谢 您需要为Auto提供图形对象的实例
Graphics g == null
所以。。例如:
class Auto
{
public Auto(Graphics g)
{
Circle circle = new Circle(100, 250, 100, 100);
Circle circle2 = new Circle(280, 250, 100, 100);
Square square = new Square(150, 200, 150, 100);
circle.Draw(g);
circle2.Draw(g);
square.Draw(g);
}
}
g
为空,您需要将其设置为试图绘制到的图形窗格。。更妙的是,把车放到表格里
class Auto
{
public Auto(Graphics g)
{
Circle circle = new Circle(100, 250, 100, 100);
Circle circle2 = new Circle(280, 250, 100, 100);
Square square = new Square(150, 200, 150, 100);
circle.Draw(g);
circle2.Draw(g);
square.Draw(g);
}
}