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

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

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

Re[2]: dockpanelsuiteのタブ選択について


(過去ログ 153 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■88818 / inTopicNo.1)  dockpanelsuiteのタブ選択について
  
□投稿者/ sakamoto (1回)-(2018/10/02(Tue) 19:11:52)

分類:[C#] 

2018/10/02(Tue) 19:13:12 編集(投稿者)
2018/10/02(Tue) 19:12:44 編集(投稿者)
2018/10/02(Tue) 19:12:34 編集(投稿者)

DockPanelSuiteについての質問です。

dockpanelに複数のパネルを追加するとタブで切り替えることができるのですが、
そのタブを切り替える際のタブをクリックした際のイベントを取得する方法が知りたいです。

どなたか知っていたら教えていただきたく・・・宜しくお願いいたします。


引用返信 編集キー/
■88822 / inTopicNo.2)  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());
        }
    }

引用返信 編集キー/
■88826 / inTopicNo.3)  Re[2]: dockpanelsuiteのタブ選択について
□投稿者/ sakamoto (2回)-(2018/10/03(Wed) 13:41:28)
No88822 (ぼーちゃん さん) に返信
> 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());
> }
> }

ありがとうございます!
途方にくれてたので助かりました!!!

解決しました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -