ListView包含在自定义控件中

时间:2011-06-09 07:50:23

标签: c# winforms listview

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

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

有人知道如何解决这个问题吗? :)

2 个答案:

答案 0 :(得分:0)

调用BringToFront();列表视图的方法

或在设计时从contextmenu执行此操作(右键单击控件并选择这些项目)

或将代码中的列表视图的顶部和左侧设置为可见区域

答案 1 :(得分: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文件将保存为Ok。