2014-11-24 32 views
0

你好我做了一个简单的ListView,它有2个columins,它是一个Detail ListView,我创建了一个ImageList并添加了我的图像,我设置了列ImageIndex与ImageKey也)为我的列和图像显示内部设计师,但一旦我运行该程序没有图像显示。C#ListView图像在运行时不显示

这里是设计师http://i.imgur.com/ZohRUon.png

+0

你的意思显示图标? – DidIReallyWriteThat 2014-11-24 20:55:23

+0

图像在列名称... http://i.imgur.com/ZohRUon.png – Rageline 2014-11-24 20:56:42

+0

'Clear()'是否在某处被调用?或者图像不存在但列内容仍然显示? – Sjips 2014-11-24 21:16:26

回答

2

的尽管显示在设计时列标题中的图标截图,显然是在.NET中的ListView控件实际上不支持此功能:

这行为发生的原因是 System.Windows.Forms.ColumnHeader类的.NET实现不包括 将图像分配给ColumnHeader控件的功能。您可以 仅将文本分配给ColumnHeader控件。

但是,PRB: Cannot Assign Images to a ColumnHeader Control in a Windows Forms ListView Control in Visual C# .NET中的代码对我很好。

添加代码并运行我的测试应用程序后,我的列标题在设计时分配给它们的运行时具有相同的图标。

4

这是设计者的缺陷,它没有正确序列化ColumnHeader.ImageIndex属性。例如,您会看到当关闭设计器窗口并重新打开它时图像再次消失。

@Idle链接的知识库文章过于霸道,您只需要在设计器中做同样的事情即可。再次设置ImageIndex。在窗体构造函数中这样做。我不能告诉正确的代码可能会从屏幕拍什么,但它应该类似于:

public Form1() { 
     InitializeComponent(); 
     listView1.Columns[0].ImageIndex = 0; 
     listView1.Columns[1].ImageIndex = 1; 
    } 
+0

更容易汉斯,谢谢!我刚刚拿到了MS的文章,并没有试图找出任何其他解决方案。 – 2014-11-25 23:54:18

+0

感谢汉斯,我只是自己碰到了这个bug。令人惊讶的是,MS的家伙仍然没有解决这个问题在Visual Studio 2K15中! – 2016-04-12 19:55:19

相关问题