CheckedListBox停靠工作不正常

问题描述:

我为Windows窗体应用程序创建了一个用户控件。它只有一个带有四个单元格的TableLayoutPanel。单元格[0,0]和单元格[0,1]具有标签。 Cell [1,0]有一个树形视图,单元格[1,1]有CheckedListBox。CheckedListBox停靠工作不正常

对于所有四个控件,我已设置对接到填充。这个奇怪的CheckedListBox看起来比TreeView小。有什么方法可以正确对接控件吗?

顺便说一句,我使用的.Net 3.5和VS 2010

以下是设计文件代码控制:

namespace UserControls 
{ 
    partial class LinkedContent 
    { 
     /// <summary> 
     /// Required designer variable. 
     /// </summary> 
     private System.ComponentModel.IContainer components = null; 

     /// <summary> 
     /// Clean up any resources being used. 
     /// </summary> 
     /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 
     protected override void Dispose(bool disposing) 
     { 
      if (disposing && (components != null)) 
      { 
       components.Dispose(); 
      } 
      base.Dispose(disposing); 
     } 

     #region Component Designer generated code 

     /// <summary> 
     /// Required method for Designer support - do not modify 
     /// the contents of this method with the code editor. 
     /// </summary> 
     private void InitializeComponent() 
     { 
      this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); 
      this.lblContentGroups = new System.Windows.Forms.Label(); 
      this.lblModules = new System.Windows.Forms.Label(); 
      this.tvContent = new System.Windows.Forms.TreeView(); 
      this.chkListBoxModules = new System.Windows.Forms.CheckedListBox(); 
      this.tableLayoutPanel1.SuspendLayout(); 
      this.SuspendLayout(); 
      // 
      // tableLayoutPanel1 
      // 
      this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; 
      this.tableLayoutPanel1.ColumnCount = 2; 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); 
      this.tableLayoutPanel1.Controls.Add(this.lblContentGroups, 0, 0); 
      this.tableLayoutPanel1.Controls.Add(this.lblModules, 1, 0); 
      this.tableLayoutPanel1.Controls.Add(this.tvContent, 0, 1); 
      this.tableLayoutPanel1.Controls.Add(this.chkListBoxModules, 1, 1); 
      this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); 
      this.tableLayoutPanel1.Name = "tableLayoutPanel1"; 
      this.tableLayoutPanel1.RowCount = 2; 
      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.760532F)); 
      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 92.23947F)); 
      this.tableLayoutPanel1.Size = new System.Drawing.Size(501, 451); 
      this.tableLayoutPanel1.TabIndex = 0; 
      // 
      // lblContentGroups 
      // 
      this.lblContentGroups.AutoSize = true; 
      this.lblContentGroups.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.lblContentGroups.Location = new System.Drawing.Point(4, 1); 
      this.lblContentGroups.Name = "lblContentGroups"; 
      this.lblContentGroups.Size = new System.Drawing.Size(243, 34); 
      this.lblContentGroups.TabIndex = 0; 
      this.lblContentGroups.Text = "Content Groups"; 
      this.lblContentGroups.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
      // 
      // lblModules 
      // 
      this.lblModules.AutoSize = true; 
      this.lblModules.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.lblModules.Location = new System.Drawing.Point(254, 1); 
      this.lblModules.Name = "lblModules"; 
      this.lblModules.Size = new System.Drawing.Size(243, 34); 
      this.lblModules.TabIndex = 1; 
      this.lblModules.Text = "Modules"; 
      this.lblModules.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
      // 
      // tvContent 
      // 
      this.tvContent.CheckBoxes = true; 
      this.tvContent.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.tvContent.Location = new System.Drawing.Point(4, 39); 
      this.tvContent.Name = "tvContent"; 
      this.tvContent.Size = new System.Drawing.Size(243, 408); 
      this.tvContent.TabIndex = 2; 
      // 
      // chkListBoxModules 
      // 
      this.chkListBoxModules.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.chkListBoxModules.FormattingEnabled = true; 
      this.chkListBoxModules.Location = new System.Drawing.Point(254, 39); 
      this.chkListBoxModules.Name = "chkListBoxModules"; 
      this.chkListBoxModules.Size = new System.Drawing.Size(243, 408); 
      this.chkListBoxModules.TabIndex = 3; 
      // 
      // LinkedContent 
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
      this.Controls.Add(this.tableLayoutPanel1); 
      this.Name = "LinkedContent"; 
      this.Size = new System.Drawing.Size(501, 451); 
      this.tableLayoutPanel1.ResumeLayout(false); 
      this.tableLayoutPanel1.PerformLayout(); 
      this.ResumeLayout(false); 

     } 

     #endregion 

     private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; 
     private System.Windows.Forms.Label lblContentGroups; 
     private System.Windows.Forms.Label lblModules; 
     private System.Windows.Forms.TreeView tvContent; 
     private System.Windows.Forms.CheckedListBox chkListBoxModules; 
    } 
} 
+1

有些代码呢? – Mazen313

+0

你可以把截图向我们展示它的样子吗? –

+0

与给定的信息我无法重现所描述的行为。请为我们提供一些代码和截图 - thx –

检查以确保IntegralHeight属性未设置。它默认为true。

从MSDN链接以上:

当该属性被设置为真,则控制自动调整 ,以确保一个项目是不是部分显示。如果您想要 根据表单的空间 要求维护列表框的原始大小,请将此属性设置为false。

+0

完美。非常感谢Mark。 – danish

+0

@danish您的欢迎 –