从另一个类访问和修改表单列表框
本文关键字:表单 列表 修改 另一个 访问 | 更新日期: 2023-09-27 18:26:17
我在访问和修改另一个类的列表框控件时遇到一些问题。
这是MainForm,它包含列表框:
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");
}
}
使用此代码设置,不会向列表框中添加任何内容。有什么想法吗?甚至还有更好的方法来解决这个问题?
visualstudio通常在Program.cs
文件中生成以下代码:
Application.Run(new MainForm());
如果这一行仍然存在,则静态mainForm
变量将包含与运行应用程序时可见的MainForm
实例不同的实例。如果我是对的,请将Program.cs
中的行更改为:
Application.Run(MainForm.init());
顺便说一句,在使用singleton(anti)模式时,考虑将该方法的名称更改为GetInstance()
,因为init()
似乎初始化了一些东西。