【问题标题】:Refresh listview in Comapct Framework so that it shows the selectedindex?刷新 Comapct 框架中的列表视图,使其显示选定的索引?
【发布时间】:2014-03-27 18:51:08
【问题描述】:

我需要使所选项目在列表视图中可见 我尝试在 Form::OnLoad: 中使用:

.Items.Add(lvItem);
....
lvItem.Selected = true;
....
.EnsureVisible(selectedIndex);
.Focus() // Make sure list view focused to allow navigate with hardware cursor keys immediate after form shows 

这个方法没有像我预期的那样工作: 它只尝试滚动列表视图。所选项目仍然不可见,用户需要向下滚动 2 个项目。

这是错误还是功能?在 FF TopItem 属性中将该项目滚动到顶部(或尝试这样做)

Compact Framework 不支持此方法的每个平台的所有版本。

是否可以在 CF 中模拟此属​​性?我是直接 API 调用吗?

附:第二个问题:如果我尝试使用滚动条滚动焦点列表视图,则所选项目会阻止。

使用硬件键滚动不会阻止以前自动选择的项目。

【问题讨论】:

  • 如果我没记错的话,EnsureVisible 没有正确考虑滚动条。我想我们只是调用了 EnsureVisible 三次(selectedIndex+1、selectedIndex-1 和 selectedIndex),并使用适当的边界检查第一项和最后一项。不是答案,因为我目前没有时间验证它。
  • +2 作品。所选项目现在是列表视图中的最后一个可见项。正如我所提到的,我应该让它永远是最重要的(解决第二个问题)
  • 如果它有效,我会把它作为一个 asnwer 删除。我不清楚你对第二期的要求是什么,你能澄清一下吗?
  • 我可以澄清问题:所选项目必须始终显示在顶部。如果我尝试在光标键选择丢失并且顶部项目被选中的情况下移动。
  • 你试过设置lvItem.Focused = True以及lvItem.Selected = trueEnsureVisible吗?

标签: c# winforms listview scroll compact-framework


【解决方案1】:

如果我没记错的话,EnsureVisible 没有正确考虑滚动条。我想我们只是调用了 EnsureVisible 三次(selectedIndex+1、selectedIndex-1 和 selectedIndex),并使用适当的边界检查第一项和最后一项。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2017-03-19
    • 1970-01-01
    相关资源
    最近更新 更多