调用以另一种形式C#中的方法(Calling a Method in another Form C#

2019-09-28 17:31发布

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

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

这是我收到错误:错误4“System.Windows.Forms.Form中”不包含关于“绘制”的定义和没有扩展方法“画”接受型的第一参数“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...   
    }
}
}

同样,我可能失去了一些东西简单,这都是相对较新的给我,我很抱歉,如果我没有张贴足够的信息。 任何输入的感谢!

Answer 1:

更改变量的类型graphics ,而不是Form

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

否则,只有基类成员将提供给你。

BTW使用PascalCase在C#中的类名。



文章来源: Calling a Method in another Form C#