C# listview每次刷新后总是跳到listview的最上方,这样如果查看listview比较靠下的数据时很不方便,请教大虾有什么解决办法? 我的方案是采用timer控件每隔3秒钟对listview进行刷新,也就是消除现有数据,重新遍历数据库,显示到listview上,这些都没有问题了,只是每次刷新后listview老是蹦到最上方,这样如果刷新快的话根本无法看下方的数据了(listview显示类型为detail),希望大侠们能给个解决方案! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 listView1.Items[listView1.Items.Count - 1].EnsureVisible();//这句保证滚动条始终在最下方 listView1.Items[listView1.Items.Count - 1].EnsureVisible();可以EnsureVisible确保指定项在控件中是可见的,必要时滚动控件的内容。 额,我通过下面这种方式实现了:在刷新之前,我先定义了一个string变量key,然后判断listView1.FocusedItem是否为null,否的话将listView1.FocusedItem.Text赋给它,然后刷新之后,遍历一遍listview,找到与之前key相同的行,继而listView1.Items[i].Selected = true; listView1.Items[i].Focused = true; listView1.EnsureVisible(i); // 使该项可见 listView1.Focus();这个思路来自另外一篇csdn帖子zswang大侠的回复,如果有哪位同学还有别的思路 ,请赐教! 好像设置一下selecteditem 就可以, 它会默认显示选中当前项并确认显示 int _index = 0; private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (e.IsSelected) { ListViewItem lva = e.Item; _index = lva.Index; } } private void addlist() { listView1.Items.Clear(); for (int i = 0; i < 20; i++) { string[] s = new string[2]; s[0] = i.ToString(); s[1] = (i + 1).ToString(); ListViewItem lvt = new ListViewItem(s); listView1.Items.Add(lvt); } listView1.Items[_index].EnsureVisible();//这句保证滚动条始终在最下 } 我在.net里面是设置<%@ Page Language="C#" MasterPageFile="~/at1.master" MaintainScrollPositionOnPostback="true" asp.net 网页中点击一个按钮,页面左下角有个错误三角 VS2008 更新数据源问题 快捷方式出问题了! 关于C#连接sqlServe数据库的r程序的性能问题 在for和foreach下的随机数问题 如何 读取 ISO 文件里的文件? 新手问题:enum类型是静态的吗,enum为什么不能定义成string类型 不用代码隐藏页写aspx网站,有无资料考参考参 #[井号]和=[等号]的区别 C# 、 JAVA 选哪个啊 , 先听听大家说的 , 这个决定可是关系到我未来的5年啊 绑定附加属性(Canvas.Left) 从网页中提取html存入txt文件后,如何得到指定标签的属性值?
listView1.Items[i].Focused = true;
listView1.EnsureVisible(i); // 使该项可见
listView1.Focus();
这个思路来自另外一篇csdn帖子zswang大侠的回复,如果有哪位同学还有别的思路 ,请赐教!
int _index = 0;
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
ListViewItem lva = e.Item;
_index = lva.Index;
}
}
private void addlist()
{
listView1.Items.Clear();
for (int i = 0; i < 20; i++)
{
string[] s = new string[2];
s[0] = i.ToString();
s[1] = (i + 1).ToString();
ListViewItem lvt = new ListViewItem(s);
listView1.Items.Add(lvt);
}
listView1.Items[_index].EnsureVisible();//这句保证滚动条始终在最下
}