无法在函数中添加 ListViewItem

Can't add ListViewItem in function

我写了一个由 2 个表单构建的代码, 主窗体 - (Form1) 从子窗体 (AddTask)

获取 3 个字符串

主要形式:

public partial class Form1 : Form
{
    int count = 0;
    string taskName2, DateTime2, More2;
    public Form1(string taskName1, string DateTime1, string More1, bool startworking)
    {
        InitializeComponent();

        taskName2 = taskName1;
        DateTime2 = DateTime1;
        More2 = More1;
        if(startworking)
        {
            StartWorking();
        }
    }

你可以看到我创建了 3 个字符串供全局使用,Form1 得到了 3 个字符串和 1 个布尔变量。当布尔值为真时,函数 StartWorking 开始。

在子表单中我有一个按钮和 3 个文本框。按钮有点击事件:

string taskName1 = textBox1.Text;
string DateTime1 = textBox2.Text;
string More1 = textBox3.Text;
Form celender = new Form1(taskName1, DateTime1, More1, true);
this.Close();

因此,当我按下子表单上的按钮时,布尔值设置为 true 并且 StartWorking 函数启动。

至此一切正常。

函数 StartWorking:

public void StartWorking()
{
    MessageBox.Show(taskName2 + "  " + DateTime2 + "  " + More2);

    ListViewItem lvi = new ListViewItem(taskName2);
    lvi.SubItems.Add(DateTime2);
    lvi.SubItems.Add(More2);
    listView1.Items.Add(lvi);    
}

现在在函数中 MessageBox 工作并显示字符串,但是当我看到 listview1 时没有任何变化。为什么它不创建任何东西?

实例化后没有显示Form1。使用 Show() 方法 celender.Show(); 显示 Form1 并像这样更改您的代码:

Hide();
string taskName1 = textBox1.Text;
string DateTime1 = textBox2.Text;
string More1 = textBox3.Text;
Form1 celender = new Form1(taskName1,DateTime1,More1,true);         
celender.Show();
celender.Closed += (s, args) => this.Close();