0

我在 Compact Framework 中使用 Listview 来制作菜单。Listview 有 4 个我可以使用的视图。大图标,小图标,列表,详细信息。所有这些在 Listview 项目文本上方或旁边都有图标图像。MSDN

我想创建另一个只是文本的视图——更像是细节视图,但左侧没有图标。有没有办法做到这一点而无需制作我自己的 onPaint 处理程序?

在使用 Detail 视图时,我尝试将 SmallImageList 和 LargeImageList 清空,但仍然为图像留下了空的占位符。

详细视图使用 SmallImageList 图标;现在我最好的解决方案是将列表视图 SmallImageList ImageSize 设置为 (1,1) - 它在文本的左侧显示一个 1 x 1 的方形图像。只要列表视图背景为白色并且我将图像列表设为空,它就可以正常工作。但这意味着如果用户想要进行另一个视图,我必须再次加载图像——这在紧凑型设备上表现不佳。

这是我更改视图的代码。

private void textView__Click(object sender, EventArgs e) {
            listView1.View = View.Details;
            listView1.SmallImageList.ImageSize = new Size(1, 1);
        }

在图像上 SmallImageLIst 不是 Null-ed。这就是我在上面的代码中看到的。任何想法?? 在此处输入图像描述

编辑:当我将图像列表设为空时会发生这种情况。

在此处输入图像描述

4

1 回答 1

1

当您的ListView处于Details模式时,将 ImageList 属性设置为 NULL(在 VB 中为无)。

当您更改回另一个视图时,请重新设置图像列表属性。

图像列表

更新

单击列字段。看看你是否有一个图像列。如果是这样,请将其删除或将其宽度设置为 0。

列字段

抱歉,我没有 WM6.5 可供您演示。我只有WM5.0。

于 2013-06-25T15:29:28.373 回答