2013-07-11 90 views
4

如何將選定的行從listview顯示到文本框?從列表視圖顯示選定的行到文本框?

這是我該怎麼辦INT的dataGridView:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    dataGridView1.Rows[e.RowIndex].ReadOnly = true; 
    if (dataGridView1.SelectedRows.Count != 0) 
    { 
     DataGridViewRow row = this.dataGridView1.SelectedRows[0]; 
     EmpIDtextBox.Text = row.Cells["EmpID"].Value.ToString(); 
     EmpNametextBox.Text = row.Cells["EmpName"].Value.ToString(); 
    } 
} 

我嘗試這樣做:

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ListViewItem item = listView1.SelectedItems[0]; 
    if (item != null) 
    { 
     EmpIDtextBox.Text = item.SubItems[0].Text; 
     EmpNametextBox.Text = item.SubItems[1].Text; 
    } 
} 
+1

結果是什麼? – Brian

+0

代碼應該工作,實際的問題是什麼? –

+1

可能有一些異常'IndexOutOfRangeException',因爲有時'ListView'中沒有選定的項目。 –

回答

5

您可能要檢查是否存在的SelectedItem第一。當選擇改變時,ListView實際上將取消選擇舊項目,然後選擇新項目,因此觸發listView1_SelectedIndexChanged兩次。除此之外,你的代碼應該工作:

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (listView1.SelectedItems.Count > 0) 
    { 
     ListViewItem item = listView1.SelectedItems[0]; 
     EmpIDtextBox.Text = item.SubItems[0].Text; 
     EmpNametextBox.Text = item.SubItems[1].Text; 
    } 
    else 
    { 
     EmpIDtextBox.Text = string.Empty; 
     EmpNametextBox.Text = string.Empty; 
    } 
} 
+0

謝謝豐:) –

相關問題