1

listViewのようなデータを含む次の列の名前と電子メールがあります

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

ジェームス行を選択し、2 つのテキスト ボックスに名前と電子メールを表示したい

textbox1 = james
textbox2 = james@gmail.com

私が実際に行っているのは、form1I've contextmenuwith item update です。名前と電子メールで不正 updatecontextmenuな負荷form2をクリックすると。上記のように名前と電子メールが含まれています。textboxlistview

リストビューから選択した行の名前を名前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();
}

しかし、エラーが発生します。

4

3 に答える 3

3
ListViewItem selItem = ListView1.SelectedItems[0];
Console.WriteLine(selItem.SubItems[0].Text);
Console.WriteLine(selItem.SubItems[1].Text);
于 2013-03-02T11:11:05.263 に答える
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(...)

于 2013-03-02T11:20:24.530 に答える
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;
}
于 2013-03-02T11:21:02.480 に答える