C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 153 を表示中)
■88822 / )  Re[1]: dockpanelsuiteのタブ選択について
□投稿者/ ぼーちゃん (3回)-(2018/10/03(Wed) 09:38:57)
DockPanelのActiveなんたらChanged系のイベントで取れます。

ActiveContentChanged: コンテンツの切り替わり
ActiveDocumentChanged: ドキュメント(タブ表示しているもの)の切り替わり
ActivePaneChanged: ペイン(上下左右にドックしているもの)の切り替わり

なので今回はDocumentがよさそうですね。

アクティブになったタブのインスタンスは
イベントハンドラ内で、ActiveContentなどから取得出来ますが、
こいつは結構nullを返すのでその辺の処理はしっかり行ってください。

    public partial class Form1 : Form
    {
        DockPanel dockPanel;
        DockContent c1;
        DockContent c2;  
        DockContent c3;  

        public Form1()
        {
            InitializeComponent();

            this.dockPanel = new DockPanel();
            this.dockPanel.Dock = System.Windows.Forms.DockStyle.Fill;
            this.dockPanel.DocumentStyle = DocumentStyle.DockingWindow;
            this.Controls.Add(this.dockPanel);
            
            c1 = new DockContent();
            c2 = new DockContent();
            c3 = new DockContent();
            c1.Text = "Content1";
            c2.Text = "Content2";
            c3.Text = "Content3";
            c1.Show(this.dockPanel, DockState.Document);
            c2.Show(this.dockPanel, DockState.Document);
            c3.Show(this.dockPanel, DockState.Document);
            
            dockPanel.ActiveContentChanged += DockPanel_ActiveContentChanged;
        }

        private void DockPanel_ActiveContentChanged(object sender, EventArgs e)
        {
            Console.WriteLine("Active: " + this.dockPanel.ActiveContent?.ToString());
        }
    }

返信 編集キー/


管理者用

- Child Tree -