我有listView
以下列名称&通过以下数据发送电子邮件,例如
NAME EMAIL
adam adam@gmail.com
james james@gmail.com
kris kris@gmail.com
我选择james row,现在在两个文本框中我想要他们的名字&电子邮件到那里 像
textbox1 = james
textbox2 = james@gmail.com
我正在做的事情是form1
我contextmenu
项目更新。
点击updatecontextmenu
错误加载form2
,并带有textbox
名称和电子邮件。
listview
包含姓名和电子邮件,如上所示。
我想将列表视图中所选行的名称分别命名为textbox
和电子邮件。
我试过了。
updateToolStripMenuItem_Click(...)
{
Form3 update = new Form3();
update.ShowDialog();
}
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();
}
但是收到错误。
答案 0 :(得分:3)
ListViewItem selItem = ListView1.SelectedItems[0];
Console.WriteLine(selItem.SubItems[0].Text);
Console.WriteLine(selItem.SubItems[1].Text);
答案 1 :(得分:2)
更新。
尝试添加到Form3
窗口方法:
public void SetData(string name, string email)
{
textBox1.Text = name;
textBox2.Text = email;
}
接下来,将您的updateToolStripMenuItem_Click
事件处理程序更新为:
updateToolStripMenuItem_Click(...)
{
Form3 update = new Form3();
ListViewItem selectedItem = listView1.SelectedItems[0];
update.SetData(selectedItem.SubItems[0].Text, selectedItem.SubItems[1].Text);
update.ShowDialog();
}
最后,明确Form3_Load(...)
答案 2 :(得分:0)
尝试从Form3
public string OldName {get;set;}
public string OldEmail {get;set;}
然后,从您的From1
updateToolStripMenuItem_Click(...)
{
using(var update = new Form3())
{
var firstCol = listView.SelectedItems[0].Text;
update.OldName = listView.SelectedItems[0].SubItems[1].Text;
update.OldEmail = listView.SelectedItems[0].SubItems[2].Text;
update.ShowDialog();
}
}
然后,Form3
看起来像这样
Form3_Load(...)
{
textBox1.Text = OldName;
textBox2.Text = OldEmail;
}