c# listview 如何改变某一行的位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# listview 如何改变某一行的位置相关的知识,希望对你有一定的参考价值。
比如我选中了第三行 如何让它调到第一行 或者任意我想要的位置
参考技术A //新建windows窗体,添加listView1,button1,粘贴代码运行//选择某一项,点击按钮,则item向上移动
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
listView1.View = View.Details;
listView1.FullRowSelect = true;
button1.Text = "向上";
listView1.Columns.Add("col");
listView1.Items.Add("item1");
listView1.Items.Add("item2");
listView1.Items.Add("item3");
private void button1_Click(object sender, EventArgs e)
if (listView1.SelectedIndices.Count > 0)
int index = listView1.SelectedIndices[0];
if (index > 0)
List<ListViewItem> L = new List<ListViewItem>();
foreach (ListViewItem item in listView1.Items)
L.Add(item);
L[index - 1] = listView1.Items[index];
L[index] = listView1.Items[index - 1];
listView1.Items.Clear();
foreach (ListViewItem item in L)
listView1.Items.Add(item);
本回答被提问者和网友采纳 参考技术B 这个啊,只有先把所有items删除了,然后再添加上去,要么呢,就是把两个item的值互相换下。 参考技术C 没懂什么意思.....................
C# 获取listview中选中一行的值
首先必须要判断listView1.SelectedItems.Count>0或是listview1.SelectedIndices.Count>0
否则第一次点击会选不中。
其次,itemSelectionChanged(选中项改变) 和 SelectedIndexChanged(选中项索引值改变,有参数可以直接获取当前选中的索引)事件都可以触发。
案例:
例如下面使用的例子:
选中点击那一行的第一列的值,索引值必须是0,而且无论点这一行的第几列,选中的都是这一行第一列的值 ,如果想获取这一行除第一列外的值,则用subitems获取,subitems的[]中为索引,从1开始。
private void listView_ItemSelectionChanged(object sender,EventArgs e)
{
if (listView1.SelectedItems.Count == 0)
return;
else
{
//选中点击那一行的第一列的值,索引值必须是0,而且无论点这一行的第几列,选中的都是这一行第一列的值 ,如果想获取这一行除第一列外的值,则用subitems获取,[]中为索引,从1开始。
string first = listView1.SelectedItems[0].Text;
string second = listView1.SelectedItems[0].SubItems[1].Text;
}
}
以上是关于c# listview 如何改变某一行的位置的主要内容,如果未能解决你的问题,请参考以下文章