首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式调用DockPanel-Suite的"AutoHidden“DockContent

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

Stack Overflow用户
提问于 2012-12-12 15:56:24
回答 1查看 4.3K关注 0票数 3

我有问题,导致一个‘自动隐藏’码头出现编程。

在网上找不到任何答案,尽管下面的所以问题建议.Show()应该做到这一点

我已经在代码的最新NuGet版本上尝试过这一点。

我的测试代码在下面。

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

更新:显然是2.7.0中的一个bug,我已经在项目中为它打开了一个问题。@roken的答案是一个很好的解决方法,因此我更新了下面的代码以反映它。

我的测试代码

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

代码语言:javascript
复制
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 );

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

代码语言:javascript
复制
            // This SHOULD show the autohide-dock, but NOTHING happens.
            dc.Show();

我用@roken的建议代替了它,它现在起作用了:

代码语言:javascript
复制
            dockPanel.ActiveAutoHideContent = dc;
            innerCtrl.Focus(); // This is required otherwise it will autohide quickly.

        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-12 17:02:44

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

代码语言:javascript
复制
dockPanel.ActiveAutoHideContent = dc;

我不清楚不能通过Show()激活内容是否是一个已经引入的bug。如果您有空闲时间,您是否可以尝试运行针对2.5.0版本提供的代码,看看Show()是否像您所期望的那样激活内容?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13843604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档