【问题标题】:ListView included in custom control自定义控件中包含的 ListView
【发布时间】:2011-06-09 07:50:23
【问题描述】:

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

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

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

【问题讨论】:

  • 请显示一些代码。我的想象力很糟糕,无法在我的脑海中准确地描绘出你的控制和问题:)
  • 检查 ListView 的 Visible 属性?

标签: c# winforms listview


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    谢谢你帮我解决这个问题。

    我设法以一种不是很优雅的方式解决了这个问题,但它确实有效。如果有人需要帮助解决类似问题,我将添加我的解决方案。

    我不知道是否可以从我的问题中理解,但我从设计器创建了自定义控件。如果在自定义控件上添加 ListView,生成设计器文件似乎存在一个小错误。由于某种原因,设计器中添加的列没有添加到 *.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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      相关资源
      最近更新 更多