双窗口上的C#列表视图

双窗口上的C#列表视图,c#,listview,C#,Listview,我在Form1中有一个listView1,在Form2中有一个向Form1的listView1添加元素的方法。 我得到一个错误,listView1不存在。如何删除此错误。 我的代码是 表格2: public static string s; public void button1_Click(object sender, EventArgs e) { s = textBox1.Text; ListViewItem lvi = new Lis

我在Form1中有一个listView1,在Form2中有一个向Form1的listView1添加元素的方法。 我得到一个错误,listView1不存在。如何删除此错误。 我的代码是

表格2:

    public static string s;
    public void button1_Click(object sender, EventArgs e)
    {
        s = textBox1.Text;
        ListViewItem lvi = new ListViewItem(DodajWindow.s);
        listView1.Items.Add(lvi);
        this.Close();
    }

请使用此示例代码,我使用2个表单

表格1的代码

public delegate void ListViewAddDelegate(string text);

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void AddItem(string item)
        {
            listView1.Items.Add(item);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ListViewAddDelegate Del = new ListViewAddDelegate(AddItem);
            Form2 ob = new Form2(Del);
            ob.Show();
        }
    }


}
表格2的代码

namespace WindowsFormsApplication2
{
    public partial class Form2 : Form
    {
        public ListViewAddDelegate deleg;
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(ListViewAddDelegate delegObj)
        {
            this.deleg = delegObj;
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (!textBox1.Text.Equals(""))
            {
                deleg(textBox1.Text);
            }
            else
            {
                MessageBox.Show("Text can not be emopty");
            }

        }

        private void Form2_Load(object sender, EventArgs e)
        {

        }
    }
}

请使用“委托书”
Form1
中是否有任何形式的
Form2
参考?您能否再解释一下,这个机制是如何工作的?(我的意思是“委托”是如何工作的?)在这个示例中,我创建了委托,从某种意义上说,我创建了函数指针,以使用您需要与具有委托相同签名的任何方法绑定的委托。请参见Dlegate类型和方法类型,当您在Form1类中创建了一个用AddItem()方法绑定的Delagate Delagte时,然后将委托对象传递给Form2。当您在Form2中调用委托deleg(textBox1.Text)时,您连接的方法仍然在form1中;实际上,它执行form1中的AddItem方法,这就是ListView更新的原因。请学习更多关于Delgate和事件的知识。使用上面的例子,你会学到什么?嗯,我有一个简单的例子:仅带有listView和button add的Form1。如何单击“添加”按钮打开Form2。在Form2文本框1中,单击“保存”按钮。如何将word写入textBox1,并使用textBox1在表单1的列表视图中保存,单击保存到“word”。如何制作这个简单的示例?这是我推荐的样本。。代码。如果你想,我会给你的样本代码