【问题标题】:Why don't my winform listview items show up selected by default?为什么我的 winform listview 项目默认显示不被选中?
【发布时间】:2013-06-08 13:57:12
【问题描述】:

我有一个 winforms 应用程序和列表视图。通过视觉设计器,我添加了一堆项目并将所有项目的“checked”属性设置为 true。当我启动我的应用程序时,没有选择任何项目,这看起来很奇怪。

即使在我尝试添加此代码之后:

         for (int i = 0; i < listView1.Items.Count; i++)
        {
            listView1.Items[i].Selected = true;
        }

当我启动我的应用程序(它是一个 vsto 应用程序)时,没有选择任何项目。我正在选择 LargeIconView(不确定这是否会有所不同)

如何让列表视图在启动时默认检查所有项目?

【问题讨论】:

  • 将列表视图的 HideSelection 属性设置为 False。如果您现在看到它们被选中,但使用的是浅灰色选择颜色,那么这只是一个焦点问题。

标签: c# winforms listview vsto


【解决方案1】:

您的代码不起作用的原因是ListView 控件没有焦点。你可以做的两件事是

1) 将控件的TabIndex 属性设置为窗体上的最低值(可能为0)

2) 以编程方式选择 ListView

private void Form1_Load(object sender, EventArgs e)
{
   listView1.Select();
   for (int i = 0; i < listView1.Items.Count; i++)
   {
       listView1.Items[i].Selected = true;
   }
}

【讨论】:

    【解决方案2】:

    只有当 ListView 的 CheckBoxes 属性设置为 True 时,checked 属性才相关。 Checked 和 Selected 不是一回事。

    您选择所有项目的代码对我有用。但也许,正如keyboardP 所建议的那样,您的问题与焦点有关。 已编辑:是的,它之所以有效,是因为我正在对其进行测试,这是我表单上的唯一控件。

    【讨论】:

      【解决方案3】:

      “如何让列表视图在启动时默认所有项目选中?”

      变化:

              listView1.Items[i].Selected = true;
      

      收件人:

              listView1.Items[i].Checked = true;
      

      如果您已经将它们全部设置为通过 IDE 进行检查,则不确定为什么设置没有“固定”。你是在表单加载的时候修改ListView的内容吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 2011-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多