Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从类中调用窗体上的方法?_C#_Forms_Class_Methods - Fatal编程技术网

C# 如何从类中调用窗体上的方法?

C# 如何从类中调用窗体上的方法?,c#,forms,class,methods,C#,Forms,Class,Methods,我的项目有2张表格,有5节课。我想做的是调用一个在类中的窗体上定义的方法,这样当我在类中调用它时它就会运行。我曾想过在我的类中创建一个表单实例,但那只会创建一个“新表单”,而且毫无意义。我的另一个选择是使我的表单成为静态表单,但我不知道如何做到这一点。谢谢你的帮助 编辑 以下是在我的表单上定义的方法: public void fillMatrix(char[,] currentMatrix, int rows, int columns) { for (in

我的项目有2张表格,有5节课。我想做的是调用一个在类中的窗体上定义的方法,这样当我在类中调用它时它就会运行。我曾想过在我的类中创建一个表单实例,但那只会创建一个“新表单”,而且毫无意义。我的另一个选择是使我的表单成为静态表单,但我不知道如何做到这一点。谢谢你的帮助

编辑

以下是在我的表单上定义的方法:

        public void fillMatrix(char[,] currentMatrix, int rows, int columns)
    {
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                string route = GameInstance.vexedGame.imgToShow(currentMatrix[i, j]);
                DataGridVexed[j, i].Value = Bitmap.FromFile(route);
            }
        }
    }
public void fillMatrix(char[,]currentMatrix,int行,int列)
{
对于(int i=0;i
非常基本的示例,如果我理解了您最初的请求:

public class MyForm : Form
{
    public A a = null;
    public MyForm ()
    {
        A = new A(this); // pass an instance of the MyForm to the class
    }

    public void WowMethod(){
       ... something amazing ...
    }
}

public class A
{
   public MyForm associatedForm = null;

   public A( MyForm f ){
      associatedForm = f;
   }

   public void CallWowMethod()
   {
      associatedForm.WowMethod();
   }
}

请给出一个具体的代码示例,说明您所拥有的以及您试图实现的目标。您不能将该方法移动到另一个类吗?在表单上拥有一个需要在其他地方使用的方法不是一个好主意,因为实例化一个新表单将比一个新类使用更多的资源,即使您选择不显示它。问题是我的方法使用DataGridView并填充它的单元格。。。这是我的代码:public void llenarMatriz(char[,]matrizActual,intfilas,intcolumnas){for(inti=0;i