如何在新类中传递/使用form1中的方法?

时间:2014-10-23 23:47:53

标签: c# .net winforms

在form1中我有一个方法我把它改为公开:

public bool ComparingImages(Bitmap File1)
        {
        }

然后我创建了一个新类并且做了:

private Form f1;

        public SimulateDownloads(Form form1)
        {
            f1 = form1;
        }

然后在另一个方法的新课程底部我做了:

bool downloaded = f1.ComparingImages(test);

但f1不包含ComparingImages

我还尝试添加到form1构造函数:

private SimulateDownloads simdownloads;

        public Form1()
        {

            InitializeComponent();

            simdownloads = new SimulateDownloads(this);

但我不想先运行该程序,我希望能够在不运行程序的情况下调用form1中的ComparingImages方法从新类中调用它。

2 个答案:

答案 0 :(得分:1)

您遇到的问题是,SimulateDownloads方法正在接收Form类型的对象,而不是类型Form1。请记住,您将公共方法放在名为Form1的类上,但未将其添加到基类Form类中!

试试这个:

// (This is in your other form, not Form1)
private Form1 f1;

public SimulateDownloads(Form1 form1)
{
    f1 = form1;
}

然后您应该能够以其他形式执行此操作:

bool downloaded = f1.ComparingImages(test);

答案 1 :(得分:0)

听起来你的ComparingImages根本不应该在form1中。创建一个新的类Utils或类似的类,并将ComparingImages放在该类中。然后你可以使用

bool downloaded = new Utils().ComparingImages(test); //or Utils.ComparingImages(test); if you make it static
来自SimulateDownloadsform1