2013-03-02 88 views
1

我有listView與下面的列名&電子郵件like用以下數據獲取某列的數據選定行中

NAME  EMAIL 
adam  [email protected] 
james [email protected] 
kris  [email protected] 

我選擇詹姆斯排,現在兩個文本框我希望自己的名字&電子郵件是有 像

textbox1 = james 
textbox2 = [email protected] 

什麼我實際上做的是對form1我已經contextmenu與項目更新。 點擊updatecontextmenu負載不正確form2textbox名稱和電子郵件。 listview包含姓名和電子郵件,如上所示。

我想將名稱從列表視圖中選定的行中分別命名爲textbox和email。

我試過了。

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

InvalidArgument =「0」值是無效的「索引」 即時得到這個錯誤,所以我問美富。 – 2013-03-02 10:52:15

+0

請顯示您寫入的引發錯誤的代碼。什麼是mofo?顯示了代碼的 – shahkalpesh 2013-03-02 10:53:34

+0

。 – 2013-03-02 11:37:19

回答

1

更新。 嘗試添加到您的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(...)

+0

ive更新了問題,請參閱和回覆。 – 2013-03-02 11:31:45

+0

我已經更新了我的答案。檢查它;) – Rafal 2013-03-02 11:42:48

+0

非常感謝。 我真的很感激它。 上帝保佑你。 – 2013-03-02 11:56:30

2
ListViewItem selItem = ListView1.SelectedItems[0]; 
Console.WriteLine(selItem.SubItems[0].Text); 
Console.WriteLine(selItem.SubItems[1].Text); 
+0

仍然出錯。 實際上我在做什麼。在項目更新的窗體1上下文菜單上使用 。 點擊updatecontextmenu加載form2與文本框的名稱和電子郵件。 listview包含姓名和電子郵件,如上所示。 我想從列表視圖中選定的行放置名稱,分別命名文本框和電子郵件。 我試過了。 private void updateToolStripMenuItem_Click(object sender,EventArgs e) { Form3 update = new Form3(); update.ShowDialog(); } – 2013-03-02 11:19:59

+0

仍然出現錯誤。 請參閱ive向問題添加了詳細信息。 – 2013-03-02 11:25:36

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; 
}