DocTabStrip Overflow

3 posts, 1 answers
  1. MikeB
    MikeB avatar
    42 posts
    Member since:
    May 2008

    Posted 06 Mar 2012 Link to this post

    Hello,

    Does anyone know if there is a property that can be checked if a Tabbed Document is visible on the TabStrip or is in the list of overflow tabs?

    Or

    What event is triggered when a Tabbed Document is selected from the list of Overflowed Tabs, besides the SelectedTabChanging/Changed?

    I need a way to distinguish when a DockWindow is selected by clicking on the Tab versus selected from the overflow list.

    Thanks,

    Mike
  2. Answer
    Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 07 Mar 2012 Link to this post

    Hello Mike,

    I've written a small exmaple for you on how to distinguish between selecting a tab via clicking on it as opposed to using the context menu in the overflow button to select the tab.

    Hope this helps.

    Form1 Designer
    namespace RadControlsWinFormsApp3
    {
        partial class Form1
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components;
     
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
     
            #region Windows Form Designer generated code
     
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.radDock1 = new Telerik.WinControls.UI.Docking.RadDock();
                this.documentContainer1 = new Telerik.WinControls.UI.Docking.DocumentContainer();
                this.documentWindow1 = new Telerik.WinControls.UI.Docking.DocumentWindow();
                this.documentTabStrip1 = new Telerik.WinControls.UI.Docking.DocumentTabStrip();
                this.documentWindow2 = new Telerik.WinControls.UI.Docking.DocumentWindow();
                this.documentWindow3 = new Telerik.WinControls.UI.Docking.DocumentWindow();
                ((System.ComponentModel.ISupportInitialize)(this.radDock1)).BeginInit();
                this.radDock1.SuspendLayout();
                ((System.ComponentModel.ISupportInitialize)(this.documentContainer1)).BeginInit();
                this.documentContainer1.SuspendLayout();
                ((System.ComponentModel.ISupportInitialize)(this.documentTabStrip1)).BeginInit();
                this.documentTabStrip1.SuspendLayout();
                this.SuspendLayout();
                //
                // radDock1
                //
                this.radDock1.ActiveWindow = this.documentWindow3;
                this.radDock1.Controls.Add(this.documentContainer1);
                this.radDock1.Dock = System.Windows.Forms.DockStyle.Fill;
                this.radDock1.DocumentManager.DocumentInsertOrder = Telerik.WinControls.UI.Docking.DockWindowInsertOrder.InFront;
                this.radDock1.Location = new System.Drawing.Point(0, 0);
                this.radDock1.MainDocumentContainer = this.documentContainer1;
                this.radDock1.Name = "radDock1";
                this.radDock1.Padding = new System.Windows.Forms.Padding(5);
                //
                //
                //
                this.radDock1.RootElement.MinSize = new System.Drawing.Size(25, 25);
                this.radDock1.Size = new System.Drawing.Size(447, 389);
                this.radDock1.SplitterWidth = 4;
                this.radDock1.TabIndex = 0;
                this.radDock1.TabStop = false;
                this.radDock1.Text = "radDock1";
                //
                // documentContainer1
                //
                this.documentContainer1.Controls.Add(this.documentTabStrip1);
                this.documentContainer1.Location = new System.Drawing.Point(5, 5);
                this.documentContainer1.Name = "documentContainer1";
                this.documentContainer1.Padding = new System.Windows.Forms.Padding(5);
                //
                //
                //
                this.documentContainer1.RootElement.MinSize = new System.Drawing.Size(25, 25);
                this.documentContainer1.Size = new System.Drawing.Size(437, 379);
                this.documentContainer1.SizeInfo.SizeMode = Telerik.WinControls.UI.Docking.SplitPanelSizeMode.Fill;
                this.documentContainer1.SplitterWidth = 4;
                this.documentContainer1.TabIndex = 0;
                this.documentContainer1.TabStop = false;
                //
                // documentWindow1
                //
                this.documentWindow1.Location = new System.Drawing.Point(6, 29);
                this.documentWindow1.Name = "documentWindow1";
                this.documentWindow1.PreviousDockState = Telerik.WinControls.UI.Docking.DockState.TabbedDocument;
                this.documentWindow1.Size = new System.Drawing.Size(425, 344);
                this.documentWindow1.Text = "documentWindow1";
                //
                // documentTabStrip1
                //
                this.documentTabStrip1.Controls.Add(this.documentWindow3);
                this.documentTabStrip1.Controls.Add(this.documentWindow2);
                this.documentTabStrip1.Controls.Add(this.documentWindow1);
                this.documentTabStrip1.Location = new System.Drawing.Point(0, 0);
                this.documentTabStrip1.Name = "documentTabStrip1";
                //
                //
                //
                this.documentTabStrip1.RootElement.MinSize = new System.Drawing.Size(25, 25);
                this.documentTabStrip1.SelectedIndex = 0;
                this.documentTabStrip1.Size = new System.Drawing.Size(437, 379);
                this.documentTabStrip1.TabIndex = 0;
                this.documentTabStrip1.TabStop = false;
                //
                // documentWindow2
                //
                this.documentWindow2.Location = new System.Drawing.Point(6, 29);
                this.documentWindow2.Name = "documentWindow2";
                this.documentWindow2.PreviousDockState = Telerik.WinControls.UI.Docking.DockState.TabbedDocument;
                this.documentWindow2.Size = new System.Drawing.Size(425, 344);
                this.documentWindow2.Text = "documentWindow2";
                //
                // documentWindow3
                //
                this.documentWindow3.Location = new System.Drawing.Point(6, 29);
                this.documentWindow3.Name = "documentWindow3";
                this.documentWindow3.PreviousDockState = Telerik.WinControls.UI.Docking.DockState.TabbedDocument;
                this.documentWindow3.Size = new System.Drawing.Size(425, 344);
                this.documentWindow3.Text = "documentWindow3";
                //
                // Form1
                //
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(447, 389);
                this.Controls.Add(this.radDock1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                ((System.ComponentModel.ISupportInitialize)(this.radDock1)).EndInit();
                this.radDock1.ResumeLayout(false);
                ((System.ComponentModel.ISupportInitialize)(this.documentContainer1)).EndInit();
                this.documentContainer1.ResumeLayout(false);
                ((System.ComponentModel.ISupportInitialize)(this.documentTabStrip1)).EndInit();
                this.documentTabStrip1.ResumeLayout(false);
                this.ResumeLayout(false);
     
            }
     
            #endregion
     
            private Telerik.WinControls.UI.Docking.RadDock radDock1;
            private Telerik.WinControls.UI.Docking.DocumentWindow documentWindow3;
            private Telerik.WinControls.UI.Docking.DocumentContainer documentContainer1;
            private Telerik.WinControls.UI.Docking.DocumentTabStrip documentTabStrip1;
            private Telerik.WinControls.UI.Docking.DocumentWindow documentWindow2;
            private Telerik.WinControls.UI.Docking.DocumentWindow documentWindow1;
        }
    }

    Form 1
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Telerik.WinControls.UI;
    using Telerik.WinControls.UI.Docking;
     
    namespace RadControlsWinFormsApp3
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private bool m_ContextMenuUsed;
     
            private void Form1_Load(object sender, EventArgs e)
            {
                ContextMenuService menuService = this.radDock1.GetService<ContextMenuService>();
                menuService.ContextMenuItemClicked += new ContextMenuItemClickEventHandler(menuService_ContextMenuItemClicked);
     
                this.radDock1.ActiveWindowChanged += new DockWindowEventHandler(radDock1_ActiveWindowChanged);
            }
     
            void radDock1_ActiveWindowChanged(object sender, DockWindowEventArgs e)
            {
                if (!m_ContextMenuUsed)
                {
                   MessageBox.Show(e.DockWindow.TabStripItem.Text + " selected by clicking on a tab");        
                }
                m_ContextMenuUsed = false;
            }
     
     
            void menuService_ContextMenuItemClicked(object sender, ContextMenuItemClickEventArgs e)
            {
                m_ContextMenuUsed = true;
                if (this.documentTabStrip1.SelectedTab.TabStripItem == e.DockWindow.TabStripItem)
                {
                    MessageBox.Show(e.Item.Text + " is already selected from overflow menu");
                }
                else
                {
                    MessageBox.Show(e.Item.Text + " selected from overflow menu");
                }
            }
     
        }
    }




  3. UI for WinForms is Visual Studio 2017 Ready
  4. MikeB
    MikeB avatar
    42 posts
    Member since:
    May 2008

    Posted 07 Mar 2012 Link to this post

    Hello Richard.

    That is exactly what I needed!  Thank you!

    Mike
Back to Top