FAQ
既存のドッカブル ウィンドウを表示 / 非表示する方法

ナレッジ番号:5310 | 登録日:2023/07/26 | 更新日:2024/11/21

概要

ドッカブブル ウィンドウを表示したり非表示したりするには、IDockableWindowManager::GetDockableWindow メソッドの引数にドッカブル ウィンドウの UID を与えてドッカブブル ウィンドウを取得し、IDockableWindow::Dock メソッドで状態を制御します。

ArcMap の主なドッカブル ウィンドウの UID は以下のとおりです。

"esriArcMapUI.TOCDockableWindow"                      :コンテンツ ウィンドウ
"esriCatalogUI.GxBrowserDockWindow"                  :カタログ ウィンドウ
"ESRI.ArcGIS.SearchUI.SearchDockableWindow"     :検索ウィンドウ

サンプル コード

以下は前述の 4 つのドッカブル ウィンドウをすべて閉じるサンプルです。このコードは ArcMap アドインを想定しています。

protected override void OnClick()
{
    GetDockableWindow( "esriArcMapUI.TOCDockableWindow");             //TOC ウィンドウ
    GetDockableWindow("esriCatalogUI.GxBrowserDockWindow");            //カタログ ウィンドウ
    GetDockableWindow("ESRI.ArcGIS.SearchUI.SearchDockableWindow");    //検索ウィンドウ
}

protected void GetDockableWindow(System.String windowUID)
{
    IDockableWindowManager dockWindowManager = (IDockableWindowManager)ArcMap.Application;
    UID  aUID = new UIDClass();
    aUID.Value = windowUID;
    IDockableWindow pDockableWindow  = dockWindowManager.GetDockableWindow(aUID);
    if (pDockableWindow.IsVisible())
    {
        pDockableWindow.Dock(esriDockFlags.esriDockHide);              //非表示にする場合
    }
    else if (!pDockableWindow.IsVisible())
    {
        pDockableWindow.Dock(esriDockFlags.esriDockShow);              //表示する場合 
    }
} 
Protected Overrides Sub OnClick()
    GetDockableWindow("esriArcMapUI.TOCDockableWindow")               'TOC ウィンドウ
    GetDockableWindow("ESRI.ArcGIS.SearchUI.SearchDockableWindow")    '検索ウィンドウ
    GetDockableWindow("esriCatalogUI.GxBrowserDockWindow")            'カタログ ウィンドウ
End Sub

Public Sub GetDockableWindow(ByVal windowName As String)
    Dim pDockWindowManager As IDockableWindowManager = My.ArcMap.Application
    Dim aUID As UID = New UIDClass()
    aUID.Value = windowUID
    Dim pDockableWindow As IDockableWindow = pDockWindowManager .GetDockableWindow(aUID)
    If pDockableWindow.IsVisible() Then
        pDockableWindow(esriDockFlags.esriDockHide)                   '非表示にする場合
    ElseIf Not pDockableWindow.IsVisible() Then
        pDockableWindow.Dock(esriDockFlags.esriDockShow)             '表示する場合
    End If
End Sub

メタデータ

機能

種類

製品