以编程方式调用 DockPanel-Suite 的“AutoHidden”DockContent

2024-01-10

我无法以编程方式显示“自动隐藏”底座。

虽然在网上找不到任何答案,但如下那么问题 https://stackoverflow.com/questions/12956147/dockpanel-suite-dockcontent-visibility建议.Show()应该能成功

我已经在最新的版本上尝试过这个NuGet版本 https://nuget.org/packages/DockPanelSuite的代码。

我的测试代码如下。

有人知道该怎么做吗?或者我做错了什么?

Update:显然这是 2.7.0 中的一个错误,我已经打开了issue https://github.com/dockpanelsuite/dockpanelsuite/issues/80对于它的项目。 @roken 的答案是一个很好的解决方法,因此我更新了下面的代码以反映它。


我的测试代码

创建一个简单的 Visual Studio Windows 窗体应用程序,并使用以下代码替换主窗体的源文件内容:

using System;
using System.Windows.Forms;
using dps = WeifenLuo.WinFormsUI.Docking;

namespace testDockPanel
{
    public partial class Form1 : Form
    {
        private dps.DockPanel dockPanel;
        private dps.DockContent dc;
        private Control innerCtrl;

        public Form1()
        {
            InitializeComponent();

            dockPanel = new dps.DockPanel();
            dockPanel.Dock = DockStyle.Fill;
            dockPanel.DocumentStyle = dps.DocumentStyle.DockingWindow;

            toolStripContainer1.ContentPanel.Controls.Add(dockPanel);

            dc = new dps.DockContent();
            dc.DockPanel = dockPanel;
            dc.DockState = dps.DockState.DockRightAutoHide;
            innerCtrl = new WebBrowser() { Dock = DockStyle.Fill };
            dc.Controls.Add( innerCtrl );

这是代码中不起作用的部分:

            // This SHOULD show the autohide-dock, but NOTHING happens.
            dc.Show();

我已将其替换为 @roken 的建议,现在可以使用:

            dockPanel.ActiveAutoHideContent = dc;
            innerCtrl.Focus(); // This is required otherwise it will autohide quickly.

        }
    }
}

要显示隐藏的自动隐藏内容,您可以直接设置活动的自动内容:

dockPanel.ActiveAutoHideContent = dc;

我不清楚是否无法通过以下方式激活内容Show()是一个已经引入的错误。如果您有空闲时间,您可以尝试运行您针对版本提供的代码吗2.5.0 https://github.com/dockpanelsuite/dockpanelsuite/downloads看看 Show() 是否像您期望的那样激活内容?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式调用 DockPanel-Suite 的“AutoHidden”DockContent 的相关文章

随机推荐