1

我知道这是一个非常常见的话题,我一直在寻找解决方案。我再次在 CHIP8 模拟器上工作,我正在尝试创建一个单独的表单来处理图形。

我现在有两种形式,Form1 和图形。我想做的是从Form1调用图形中的“draw”方法。在 Form1 我有以下代码...

这是我得到的错误:错误4'System.Windows.Forms.Form'不包含'Draw'的定义并且没有扩展方法'Draw'接受'System.Windows.Forms.Form'类型的第一个参数' 可以找到(您是否缺少 using 指令或程序集引用?)

Form graphicsTest = new graphics(); // This is in the initial declaration of Form1
graphicsTest.Draw(screen); // Screen is a [64,32] boolean array representing pixel states

这是我所拥有的“图形”...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class graphics : Form // The purpose of this form is to handle the graphics
{
    Graphics dc;
    Rectangle ee = new Rectangle(10, 10, 30, 30); // Size of each pixel
    Pen WhitePen = new Pen(Color.White, 10); // Pen to draw the rectangle object
    Pen BlackPen = new Pen(Color.Black, 10);
    bool[] drawMe;

    public graphics()
    {
        InitializeComponent();
        dc = this.CreateGraphics();
    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }

    public void Draw(bool[] drawme) // This method recieves the array and draws the appropriate Sprites!
    {
        // This is where I will draw the appropriate pixels...   
    }
}
}

同样,我可能遗漏了一些简单的东西,这对我来说都是相对较新的,如果我没有发布足够的信息,我深表歉意。任何输入表示赞赏!

4

1 回答 1

3

将变量类型更改graphicsForm

graphics graphicsTest = new graphics(); 
graphicsTest.Draw(screen);

否则,您将只能使用基类成员。

顺便说一句,在 C# 中使用 PascalCase 作为类名。

于 2012-11-18T18:01:06.613 回答