2011-06-09 110 views
1

我正在创建一些更复杂的控件,其中包含已定义的控件以供我正在使用的应用程序使用。ListView包含在自定义控件中

我有一个问题,我试图“绘制”一个表(视图=详细信息)的ListView控件。我为我的ListView和几行添加了列标题。头文件和行可以在设计器中从我的自定义活动中看到,但是当我在Windows窗体上添加自定义控件时,无论是在设计器上,在执行应用程序时都看不到它们。自定义活动还包含其他预定义控件:ListBox,TextBox等,它们都正确显示,但ListView不是,我无法找到任何合理的解释。我也做了一些调试,并观察到项目在那里,但只是没有在窗体中显示。

有人有任何想法我可以解决这个问题? :)

+0

请显示一些代码。我有不好的想象力来创建精确的形象在我的心中,你的控制和问题:) – Reniuz 2011-06-09 08:23:12

+0

检查ListView的Visible属性? – CharithJ 2011-06-09 10:43:36

回答

0

谢谢你,为试图帮助我。

我用一种非常优雅的方式来解决问题,但它的工作原理之一。如果有人需要类似问题的帮助,我会添加我的解决方案。

我不知道它是否可以从我的问题中理解,但我从设计者创建了自定义控件。看起来,如果在自定义控件上添加ListView,那么生成Designer文件会有一个小错误。出于某种原因,在设计器中添加的列不会添加到* .Designer文件中,我手动添加它们并解决问题。应该在这种情况下,所添加的代码行会是这样的:

this.myListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 
     this.myColumnHeader1, 
     this.myColumnHeader2, 
     this.myColumnHeader3}); 

     // 
     // myColumnHeader1 
     // 
     this.myColumnHeader1.Text = "My Column Header1"; 
     this.myColumnHeader1.Width = 100; 
     // 
     // myColumnHeader2 
     // 
     this.myColumnHeader2.Text = "My Column Header 2"; 
     this.myColumnHeader2.Width = 100; 
     // 
     // myColumnHeader3 
     // 
     this.myColumnHeader3.Text = "My Column Header 3"; 
     this.myColumnHeader3.Width = 100; 

我也必须指出,通过对自定义控件设计师添加ListView控件时,这个问题只能观察,如果是直接添加到Windows窗体* * .Designer文件将被保存好。

0

call BringToFront();列表视图的方法

或在设计时从文本菜单做这个(右击控制和选择这些项目)

或机顶盒并在代码左侧列表视图的可见区域