Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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# 如何将Form 1 listview值传递给Form 2文本框?_C#_Winforms - Fatal编程技术网

C# 如何将Form 1 listview值传递给Form 2文本框?

C# 如何将Form 1 listview值传递给Form 2文本框?,c#,winforms,C#,Winforms,我是c新手,正在编写一个简单的应用程序,希望将Form1 listview值传递给Form2文本框。那么,如何将这些子项传递到Form 2文本框 private void Form1_Load(object sender, EventArgs e) { ListViewItem item = new ListViewItem("ITEM1"); item.SubItems.Add("ITEM2"); ite

我是c新手,正在编写一个简单的应用程序,希望将Form1 listview值传递给Form2文本框。那么,如何将这些子项传递到Form 2文本框

 private void Form1_Load(object sender, EventArgs e)
        {
            ListViewItem item = new ListViewItem("ITEM1");
            item.SubItems.Add("ITEM2");
            item.SubItems.Add("ITEM3");
            listView1.Items.AddRange(new ListViewItem[] { item });
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 newForm = new Form2();
            newForm.Show();
        }

为此,您需要在Form2类中声明属性:

public class Form2
{
    public ListViewItem[] Items{get;set;}

    //your code
}
然后可以将listView1.Items传递给form2:

private void button1_Click(object sender, EventArgs e)
{
    Form2 newForm = new Form2();
    newForm.Items = listView1.Items; // pass items to form2
    newForm.Show();
}
然后在form2加载事件处理程序中获取必要的值,并将其设置为form2的文本框:

public class Form2
{
    public ListViewItem[] Items{get;set;}

    private void Form2_Load(object sender, EventArgs e)
    {
        textBox1.Text = Items[0].SubItems[0].Text; // or your logic here in this handler            
    }

    //your code
}

您可以像这样修改Form2的构造函数

public partial class Form2 : Form
{
    public Form2(ListViewItem item)
    {
        InitializeComponent();
        textBox1.Text = item.Text;   // item.Subitems[index].Text if you want the value of subitems
    }
}
当您创建表单时,您会像这样传入项

private void createNewForm()
{
    Form2 f = new Form2(listView1.Items[0]); // to pass the first item in this case
    f.Show();
}

请参见以下网页上的我的双表单项目。您需要在Form2中调用从form1中获取输入的方法。哦,不!别再这样了!关于堆栈溢出的最常被问到的问题再次出现。回答这些问题的人的重要注意事项:当一个人键入此标题时,他们将在“提交”按钮之前的堆栈溢出UI中看到指向几乎相同的问题的多个链接,这些问题的答案已经给出。要单击提交,他们必须忽略之前的所有答案。如果你的答案与之前的答案没有什么不同,那么是什么让你认为提问者不会忽视你的答案呢?谢谢。那就行了