2013-05-14 89 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

相关问题