簡體   English   中英

以編程方式調用DockPanel-Suite的“AutoHidden”DockContent

[英]Calling up DockPanel-Suite's “AutoHidden” DockContent programmatically

我無法以編程方式顯示“自動隱藏”基座。

在網上找不到任何答案,雖然以下SO問題表明.Show()應該已經完成​​了這個伎倆

我已經嘗試了最新的NuGet版本的代碼。

我的測試代碼如下。

誰知道怎么做? 或者我做錯了什么?

更新:顯然這是2.7.0中的一個錯誤,我已經為該項目打開了一個問題 @ 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版提供的代碼,看看Show()是否像您期望的那樣激活內容?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM