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



在form1中,我有一个方法,我将其更改为public:

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方法,从新类中调用它。

您遇到的问题是您的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);

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

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

来自SimulateDownloadsform1

最新更新