0

说 form1 中的 listview 具有以下列名称和电子邮件以及以下数据,例如

NAME     EMAIL
adam     adam@gmail.com
james    james@gmail.com
kris     kris@gmail.com

此列表视图在 form1 中。

listview 有一个带有更新项的上下文菜单,比如我从 form1 中选择 james 行,右键单击并选择更新,现在 form2 将被加载,其中有两个文本框&我希望 listview 的选定行中的名称和电子邮件出现在那个文本框中,比如

textbox1 = james
textbox2 = james@gmail.com

我实际上在做什么。

在带有项目更新的 form1 ive 上下文菜单上。单击 updatecontextmenu 将使用文本框名称和电子邮件加载 form2。listview 包含姓名和电子邮件,如上所示。我想将列表视图中 form1 中选定行的名称分别放置在名称文本框和电子邮件中。

我试过这个。

表格1:

updateToolStripMenuItem_Click(...)
{

    Form3 update = new Form3();
    update.ShowDialog();            
}

表格3:

Form3_Load(...)
{
    Form1 f1 = new Form1();
    string oldName = f1.listView1.SelectedItems[0].SubItems[0].Text;
    string oldEmail = f1.listView1.SelectedItems[0].SubItems[0].Text;
    textBox1.Text = oldName.ToString();
    textBox2.Text = oldEmail.ToString();
}

但出现错误 InvalidArgument=Value of '0' is not valid for 'index'

4

1 回答 1

1

您可以将第二种形式的构造函数更改为:

public Form2(string name, string email)
{ ... }

然后在 Form1 中:

Form2 update = new Form2(name, email);
于 2013-03-02T12:00:41.383 回答