1

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

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

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

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

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

4

3 回答 3

2

您的代码不起作用的原因是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;
   }
}
于 2013-06-08T14:10:32.723 回答
0

只有当 ListView 的 CheckBoxes 属性设置为 True 时,checked 属性才相关。Checked 与 Selected 不同。

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

于 2013-06-08T14:13:22.697 回答
0

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

改变:

        listView1.Items[i].Selected = true;

至:

        listView1.Items[i].Checked = true;

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

于 2013-06-08T15:31:36.727 回答