Windows窗体Listview未直观地显示所选项目

Windows窗体Listview未直观地显示所选项目,windows,winforms,listview,c#-4.0,Windows,Winforms,Listview,C# 4.0,我们有一个集成到应用程序中的工具。我们周围也有一些严格的边界,除了扩展之外,我们不能修改应用程序。我在这里搜索过,我在互联网上搜索过,但是找不到任何关于这个问题的帖子 我有一个包含ListView的Windows窗体,我们的用户要求我们创建一个复选框来选择/取消选择全部。我有一个事件处理程序,用于在复选框状态更改时调用例程将所有内容设置为Selected private void SelectAllEventHandler(object sender, EventArgs e) { Chan

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

我有一个包含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();
}
private void SelectAllEventHandler(对象发送方,事件参数e)
{
更改状态(RadCapListView,选择AllRadCap.Checked);
}
私有void ChangeState(SWF.ListView控件,bool状态)
{
如果(控制复选框)
{
control.Items.OfType().ToList()的
.ForEach(item=>item.Checked=state);
}
其他的
{
control.Items.OfType().ToList()的
.ForEach(item=>item.Selected=state);
}
控件。刷新();
}
进入调试模式时,所有项目都标记为选中。 此外,在控制级别,SelectedItems也会正确更新

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

是否有人在正确显示所选项目时解决了此问题


谢谢!

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