c# - CheckedListBox 对接无法正常工作

标签 c# winforms .net-3.5

我为 Windows 窗体应用程序创建了一个用户控件。它只有一个带有四个单元格的 TableLayoutPanel。 Cell[0,0] 和 cell[0,1] 有标签。 Cell[1,0] 有一个 TreeView ,cell[1,1] 有 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;
    }
}

最佳答案

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

来自上面的 MSDN 链接:

When this property is set to true, the control automatically resizes to ensure that an item is not partially displayed. If you want to maintain the original size of the ListBox based on the space requirements of your form, set this property to false.

关于c# - CheckedListBox 对接无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8265473/

相关文章:

c# - IQueryable<a> 到 ObservableCollection<a> 其中 a = 匿名类型

C# New bitmap() - 内存不足

c# - datagridview 中行分隔符的颜色

c# - SendGrid 不发送电子邮件

c# - 我如何在同一端口上同时使用套接字发送和接收

c#, 隐藏 "controlbox", winforms

c# - 单击桌面快捷方式时从系统托盘恢复应用程序

.net-3.5 - InstallShield 添加引用的程序集但我不想要它们

c# - MS UIAutomation 对文本没用吗?如何设置字体粗细、获取插入位置、插入文本等?

c# - 可以接受使用类型作为字典键吗?