Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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#_Listbox - Fatal编程技术网

C# 从另一个类访问和修改表单列表框

C# 从另一个类访问和修改表单列表框,c#,listbox,C#,Listbox,从另一个类访问和修改listbox控件时遇到一些问题 以下是主窗体,其中包含列表框: public partial class MainForm : Form { private static MainForm mainForm = new MainForm(); internal static MainForm init() { return MainForm.mainForm; } public MainForm() {

从另一个类访问和修改listbox控件时遇到一些问题

以下是主窗体,其中包含列表框:

public partial class MainForm : Form
{
    private static MainForm mainForm = new MainForm();

    internal static MainForm init()
    {
        return MainForm.mainForm;
    }

    public MainForm()
    {
        InitializeComponent();
    }
}
下面是我用来尝试修改列表框的第二个类,这些项是从事件中添加的:

public class Utils
{
    void ItemsReceived(object sender, DataReceivedEventArgs<ListboxItems> e)
    {
        MainForm.init().listBox1.Items.Add("test");
    }
}

使用此代码设置,不会向列表框添加任何内容。有什么想法吗?或者更好的解决方法?

通常visual studio会在Program.cs文件中生成以下代码:

如果此行仍然存在,则静态mainForm变量将包含与运行应用程序时可见的mainForm实例不同的mainForm实例。如果我是对的,请将Program.cs中的行更改为:

在一个旁注中,在使用单体反模式时,考虑将该方法的名称更改为GET实例,因为init似乎初始化了某个东西。

可能的副本
Application.Run(new MainForm());
Application.Run(MainForm.init());