【问题标题】:Split Windows with panels用面板拆分窗口
【发布时间】:2018-12-22 07:47:55
【问题描述】:

我正在阅读一本 Windows 窗体的书,我遇到了一个让我很困惑的例子。

这里有两张图片,第一张是初始状态,第二张是用户点击隐藏按钮时的状态。 此表单包含两个拆分容器,一个水平的,一个垂直的,在水平一个的右侧面板中。

书上说:

对接设计的最大特点之一是它们可以轻松容纳隐藏的 或修改控制。实施

这种设计,两个面板被放置在左侧区域 SplitContainer,一个名为 pnlFileList,另一个名为 pnlShow。 但是,一次只显示其中一个面板。的内容 窗口的其余部分会自动调整大小以适应 显示时的附加视图


private void cmdHide_Click(object sender, System.EventArgs e)
{
    splitContainer1.Panel1Collapsed = true;
    pnlShow.Visible = true;
}
private void cmdShow_Click(object sender, System.EventArgs e)
{
    pnlShow.Visible = false;
    splitContainer1.Panel1Collapsed = false;
}

我做到了,但问题出在 SplitContainer 的左面板折叠时出现的按钮。

我不知道把面板放在哪里"pnlShow"
如果我把它放在水平SplitContainer控件的右侧,它也会消失。

有什么建议吗?

【问题讨论】:

    标签: c# winforms split dock splitcontainer


    【解决方案1】:

    这本书的引述对我来说似乎并不准确。不能将 pnlShow 放置在 SplitContainer 的“左侧区域”内,因为一旦将 Panel1Collapsed 属性设置为 true,它将不可见。

    相反,您可以将pnlShow 放在SplitContainer 的左侧,并将其Dock 属性设置为Left。此外,在这种情况下,您似乎实际上并不需要面板因为它只包含一个按钮。您可以只使用一个按钮。无论如何,您的表单在设计时看起来像这样:

    那么,你的代码应该可以正常工作了。

    一些备注:

    • 当然,如果您决定使用不带面板的按钮,则需要使用YourButtonName.Visible 而不是pnlShow.Visible
    • 如果您发现左侧的按钮(面板)覆盖了SplitContainer,只需右键单击SplitContainer并选择“置于前面”即可。
    • 最好使用“btn”作为按钮名称的前缀,而不是“cmd”。后者有点在经典的visual basic语言中被广泛使用,因为它曾经被称为CommandButton。在 .NET 世界中,标准是改用“btn”。

    最后,根据我在上面最后一点中提到的内容以及您问题中的屏幕截图的外观,这本书似乎已经过时了,并且是基于早期版本的 .NET 框架编写的,所以 除非您必须专门研究这本书,否则我建议您查找更新的书籍或教程。

    【讨论】:

    • 感谢您的回答,应该可以。你能推荐我一本不错的 c# winforms 书吗?
    猜你喜欢
    • 2012-01-07
    • 1970-01-01
    • 2012-01-28
    • 2018-04-09
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    相关资源
    最近更新 更多