【发布时间】:2017-03-21 17:09:47
【问题描述】:
我对 Windows 窗体编码非常陌生,我正在尝试制作一个具有三个按钮(圆形、矩形和线条)的 minipaint,当它获得一个按钮作为输入时,它将在面板中绘制形状。 我有这个形状类
class shape
{
public Color color { get; set; }
public int width { get; set; }
public int startx { get; set; }
public int starty { get; set; }
}
它具有颜色、宽度和起始位置属性。例如,我有这个矩形类:
class rectangle : shape
{
int length { get; set; }
int width { get; set; }
}
从形状类继承共享属性。现在我想在 panel 中打印一个矩形。我熟悉DrawRectangle 方法,我打印了一个矩形,如下所示:
Pen black = new Pen(Color.Black);
Rectangle rect = new Rectangle(20,20,400,200);
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawRectangle(black, rect);
}
但我不知道如何从class rectangle:shape 绘制一个矩形。我也有从单击按钮到矩形分配值的问题。
你能帮帮我吗?
【问题讨论】:
-
您需要将 MyRectangle 转换为通用 Rectangle,或者只是将 MyRectangle 的值混合到您从 startx/y 计算的点数组中,并使用 DrawPolygon。我可能会在 MyRectangle.GetRectangle() 中创建一个返回 System.Drawing.Rectangle 的方法
-
我应该在矩形类中创建一个绘制方法吗?类似于“ void draw() { System.Drawing.Rectangle(startx,starty,length,width); }” 但这不起作用
-
我相信您在形状类中对宽度的定义很可能是厚度(以免与矩形继承类(和其他)中的宽度混淆。
-
看看this example 中的
Circle类或this other example 中的IShape接口和实现。