c# winforms dock fill tr​​ee-view 让它消失

标签 c# winforms

我有一个 winforms 应用程序。在我的应用程序中,我有一个以编程方式加载的用户控件。

在这个用户控件中,我有 TreeView ,它也将以编程方式加载项目。我的问题是我想让我的 TreeView 占据其父 View 的整个大小。

我尝试过的
我将用户控件 Dock 属性设置为 DockStyle.Fill 以使其采用其父控件的大小。
我对 TreeView Dock 属性做了同样的事情;将其设置为 DockStyle.Fill

我得到了什么
用户控件按预期采用完整大小 TreeView 看起来像是隐藏的。我检查了高度,发现它是 0。当我尝试更改高度时它有 DockStyle.Fill 我不能,它变回 0

有什么想法吗?
更新
TreeView 的自动生成代码:

private void InitializeComponent()
{
    this.btnAddServer = new System.Windows.Forms.Button();
    this.pnlServersContainer = new System.Windows.Forms.FlowLayoutPanel();
    this.treeViewServers = new System.Windows.Forms.TreeView();
    this.pnlServersContainer.SuspendLayout();
    this.SuspendLayout();
    // 
    // btnAddServer
    // 
    this.btnAddServer.Location = new System.Drawing.Point(89, 478);
    this.btnAddServer.Name = "btnAddServer";
    this.btnAddServer.Size = new System.Drawing.Size(107, 23);
    this.btnAddServer.TabIndex = 3;
    this.btnAddServer.Text = "Add New Server";
    this.btnAddServer.UseVisualStyleBackColor = true;
    this.btnAddServer.Click += new System.EventHandler(this.btnAddServer_Click);
    // 
    // pnlServersContainer
    // 
    this.pnlServersContainer.AutoScroll = true;
    this.pnlServersContainer.Controls.Add(this.treeViewServers);
    this.pnlServersContainer.Dock = System.Windows.Forms.DockStyle.Fill;
    this.pnlServersContainer.Location = new System.Drawing.Point(0, 0);
    this.pnlServersContainer.Name = "pnlServersContainer";
    this.pnlServersContainer.Padding = new System.Windows.Forms.Padding(8, 20, 0, 0);
    this.pnlServersContainer.Size = new System.Drawing.Size(318, 463);
    this.pnlServersContainer.TabIndex = 2;
    // 
    // treeViewServers
    // 
    this.treeViewServers.Dock = System.Windows.Forms.DockStyle.Fill;
    this.treeViewServers.Location = new System.Drawing.Point(11, 23);
    this.treeViewServers.Name = "treeViewServers";
    this.treeViewServers.Size = new System.Drawing.Size(275, 0);
    this.treeViewServers.TabIndex = 0;
    this.treeViewServers.DoubleClick += new System.EventHandler(this.treeViewServers_DoubleClick);
    // 
    // ucServersList
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    this.Controls.Add(this.btnAddServer);
    this.Controls.Add(this.pnlServersContainer);
    this.Name = "ucServersList";
    this.Padding = new System.Windows.Forms.Padding(0, 0, 0, 60);
    this.Size = new System.Drawing.Size(318, 523);
    this.Load += new System.EventHandler(this.ucServersList_Load);
    this.pnlServersContainer.ResumeLayout(false);
    this.ResumeLayout(false);

}

最佳答案

我建议在 Visual Studio 中打开 Document outline 编辑器。
这将所有控件按其层次结构顺序显示为树。
它还允许您将控件拖放到正确的位置。

使用 View > Other windows > Document outline 打开它。

您可以在查看控制顺序时解决您的问题。

关于c# winforms dock fill tr​​ee-view 让它消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023001/

相关文章:

c# - 在未安装 Outlook 客户端的情况下使用 Microsoft.Office.Interop.Outlook

c# - 在 .NET 中与 TPL 并发。 Parallel Generator 在一段时间后阻塞并卡住

C# 右键单击​​ TreeView 节点

c# - 我如何计算使用 DateTime.Now 调用该方法的速度?

c# - 在C#中循环动态添加控件

vb.net - 在 VB.NET 中设置 WinForms UserControl 的命名空间

c# - 在 Silverlight 中重新抛出异常时保留堆栈跟踪

c# - 将 float[] 转换为 byte[] 的最快方法是什么?

c# - 将字典值转换为数组

c# - 将文本加载到数据 GridView