【问题标题】:Windows Form Listview is not visually showing selected itemsWindows 窗体列表视图未直观地显示所选项目
【发布时间】:2018-07-25 12:39:21
【问题描述】:

我们有一个工具正在集成到我们的应用程序中。我们周围也有一些严格的界限,除了我们的扩展之外,我们不能修改应用程序。我在这里搜索过,我已经搜索过互联网,但找不到有关此问题的任何帖子。

我有一个包含 ListView 的 Windows 窗体,我们的用户要求我们创建一个复选框来全选/取消全选。当复选框状态发生更改时,我有事件处理程序,并调用例程将所有内容设置为 Selected。

private void SelectAllEventHandler(object sender, EventArgs e)
{
  ChangeState(RadCapListView, SelectAllRadcap.Checked);
}

private void ChangeState(SWF.ListView control, bool state)
{
  if (control.CheckBoxes)
  {
    control.Items.OfType<SWF.ListViewItem>().ToList()
        .ForEach(item => item.Checked = state);
  }
  else
  {
    control.Items.OfType<SWF.ListViewItem>().ToList()
        .ForEach(item => item.Selected = state);
  }
  control.Refresh();
}

进入调试模式所有项目都被标记为选中。 同样在控制级别 SelectedItems 已正确更新。

问题在于,在视觉上,控件不会像我们的 WPF 表单那样突出显示选定的项目。正如您在代码中看到的那样,我还尝试刷新控件,希望显示选中的项目,但没有任何乐趣。

有没有人解决了这个问题,让所选项目正确显示?

谢谢!

【问题讨论】:

    标签: windows winforms listview c#-4.0


    【解决方案1】:

    不要使用control.Refresh(),而是尝试control.Focus()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多