ListView的元素选择的问题

北京的雾霾天 2005-06-29 01:29:06
在WinForm的ListView中,当我选择Items中的一个时,这个元素当然是高亮选择状态,可是如果这个选择的元素不是第一个的时候,在第一个元素上会有一个虚的选择框,当在ListView上通过上下光标移动的时候会从这个虚的选择框开始移动,而原来选择的元素就不再选择上了,我怎么能做到当选择一个元素时这个虚的框也在选择的元素上呢?
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
openxyj 2005-08-10
  • 打赏
  • 举报
回复
mark
北京的雾霾天 2005-06-29
  • 打赏
  • 举报
回复
楼上说的极对,只是我没有想到有一个Focused属性,学习到了,多谢了:)
给分!
an_andy 2005-06-29
  • 打赏
  • 举报
回复
帮你顶
龍过鸡年 2005-06-29
  • 打赏
  • 举报
回复
private void listView_SelectedIndexChanged(...)
{
if(this.listView1.SelectedItems.Count > 0)
this.listView1.SelectedItems[0].Focused = true;
}
Bob 2005-06-29
  • 打赏
  • 举报
回复
我想你应该是在 ListView 所在 Form 的构造函数中执行上面的操作吧。

正确的方法应该是在 FormLoad 事件处理方法中执行 ListView 的操作,如下面代码:

private void Form1_Load(object sender, System.EventArgs e)
{
this.listView1.Items[1].Selected = true;
this.listView1.Items[1].Focused = true;
}

首先,在 Form 的构造函数中设置 Selected 属性可以起作用,但是 Focused 不行,因为它是一种动作(我猜的),在 Form 的实例化过程中是无法实现的。所以要在 Form 实例化以后,在加载的过程中运行上面的代码。

类似的问题会出现在 TreeView 的水平滚动条,比如你在 Form 的构造函数中给 TreeView 加 Item,然后水平滚动条会在不应该出现的时候出现,也是通过把初始化代码放在FormLoad事件处理方法中解决的。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧