2013-05-14 83 views
0
int selectedRowIndex = 0;  
private void listViewUserList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if(listViewUserList.SelectedIndices.Count == 0) 
     return; 
} 
private void Form_Load(object sender, EventArgs e) 
{ 
    if(listViewUserList.Items.Count > 0) 
    { 
     listViewUserList.Items[selectedRowIndex].Selected = true; 
     listViewUserList.Select(); 
    } 
} 

表格加載我選擇第一行ListView。但是,當我選擇空行時,取消選擇ListView中的項目。選擇空白行從列表視圖中取消選擇項目

點擊空行然後選擇以前選擇的行應該怎麼做?我在Google上搜索過,但沒有找到任何好的答案。僅用於WPF而不是Windows窗體的stackoverflow解決方案。

+0

在我的WinForms已經明確提到... – John 2013-05-14 06:41:36

+0

@Rahul'Page.Ispostback'並沒有做太多的WinForms的:) – 2013-05-14 06:41:52

+0

我不清楚你在這裏問什麼。你可以重述一下你的問題嗎? – 2013-05-14 06:45:09

回答

0
  1. 將上一個索引保存在類中。
  2. 如果當前索引指向一個空字符串,使用(1)
  3. 然後調用myListView.Select();

代碼:

private void Form_Load(object sender, EventArgs e) 
{ 
    if(listViewUserList.Items.Count > 0 && (String.Empty != listViewUserList.Items[selectedRowIndex].ToString())) 
    { 
     listViewUserList.Items[selectedRowIndex].Selected = true; 
     listViewUserList.Select(); 
    } 
} 
+0

但是,如果我單擊列表視圖項目下方的空白區域,它將失去選擇。 – John 2013-05-14 07:23:02

+0

我想你必須爲listview選擇代碼更改事件 – John 2013-05-14 07:31:26

0

這可以通過增加對ListViewMouseUp事件的事件處理程序來完成。如果您還需要爲SelectedIndexChanged,它的委託方法,listViewUserList_SelectedIndexChanged事件處理程序,從中取出一個處理項目選擇的任何代碼:

private void listViewUserList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    // remove the 2 lines below, as the selection handling is done in the 
    // MouseUp event handler 

    //if(listViewUserList.SelectedIndices.Count == 0) 
    // return; 

    // TODO: get the column data 
} 

添加以下事件處理程序:

listViewUserList.MouseUp += new MouseEventHandler(this.listViewUserList_MouseUp); 

和下面的方法:

private void listViewUserList_MouseUp(object sender, MouseEventArgs e) 
{ 
    if (listViewUserList.SelectedItems.Count > 0) 
    { 
     selectedRowIndex = listViewUserList.SelectedItems[0].Index; 
    } 
    else 
    { 
     listViewUserList.Items[selectedRowIndex].Selected = true; 
    } 
} 
+0

我想要listview SelectedIndexChanged我必須得到coloumn數據 – John 2013-05-14 08:20:30

+0

@Means,請參閱我的更新的答案。 – 2013-05-14 09:07:06

+0

亞歷克斯可以請你在SelectedIndexChanged事件中做 – John 2013-05-14 12:07:51