将窗体实例作为参数传递

Fre*_*kyB 0 c# winforms

我有 Windows 窗体,它正在调用另一个类的方法,需要作为参数传递。

public partial class Form1 : Form
    {                
        private myClass _myClass;       

        public Form1()
        {
            InitializeComponent();
            _myClass = new myClass(//pass this instance - Form1 - as parameter)
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将 Form1 实例作为参数传递?我需要这样做,因为另一个类正在创建系统托盘图标和菜单条,并且能够关闭父窗体。

Gra*_*ICA 5

你只要这样做:

_myClass = new myClass(this);
Run Code Online (Sandbox Code Playgroud)

然后更改 myClass 中的构造函数:

public class myClass
{
    private Form1 theForm;

    public myClass(Form1 theForm)
    {
        this.theForm = theForm;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

现在您可以从类中访问该表单。我想我会避免这样做。尝试让表单负责调用类并确定它何时应该关闭自身。

让类保留对实例化它的表单的引用,并从类内部关闭它似乎可能会导致混乱和可维护性问题。