c# listview 如何改变某一行的位置
答案:3 悬赏:40
解决时间 2021-02-26 04:37
- 提问者网友:但未伤到心
- 2021-02-26 01:30
比如我选中了第三行 如何让它调到第一行 或者任意我想要的位置
最佳答案
- 二级知识专家网友:浪者不回头
- 2021-02-26 02:02
//新建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);
}
}
}
}
}
//选择某一项,点击按钮,则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);
}
}
}
}
}
全部回答
- 1楼网友:一只傻青衣
- 2021-02-26 03:55
没懂什么意思.....................
- 2楼网友:厭世為王
- 2021-02-26 02:22
首先你要在数据添加的时候就把他的id值放进它的tag里面去,这样才能在选中行的时候知道是哪一行~
listviewitem 对象名 = new listviewitem(首项就是显示在最前面的列);
对象名.tag = (int)datarader[id项];//这个是为了后面取选中行的id十使用,不需要可以不写
控件名.items.add(对象名);
对象名.subitems.addrange(new string[]{ 需要添加的项 });
添加好数据后选种行的代码为:
控件名.selecteditems[0].tag;
假如想提取选中行第[3]单元格的值:
控件名.selecteditems[0].subitems[6].text;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯