Beispiel #1
0
        private void split_MouseClick(object sender, MouseEventArgs e)
        {
            SplitContainerButtons clickedButton = SplitContainerButtons.None;

            foreach (var btn in _buttons)
            {
                if (btn.Rect.Contains(e.Location))
                {
                    clickedButton = btn.Type;
                }
            }

            switch (clickedButton)
            {
            case SplitContainerButtons.ChangeOrientation:
                split.Orientation = (Orientation)(((int)split.Orientation + 1) % 2);
                break;

            case SplitContainerButtons.Panel1:
                split.Panel1Collapsed = !split.Panel1Collapsed;
                break;

            case SplitContainerButtons.Panel2:
                split.Panel2Collapsed = !split.Panel2Collapsed;
                break;
            }
        }
        /// <summary>Initializes a new instance of the <see cref="SplitContainerTools"/> class.</summary>
        /// <param name="container">
        /// The <see cref="System.Windows.Forms.SplitContainer"/> to which this instance will be bound.
        /// </param>
        public SplitContainerTools(SplitContainer container)
        {
            split = container;
            _keepFocus = false;
            _showGripper = true;
            _showButtons = SplitContainerButtons.None;
            _panel1Border = false;
            _panel2Border = false;
            _buttons = new SplitContainerButton[] { };
            _tooltip = new ToolTip();

            _splitRectInternal = typeof(SplitContainer).GetField("splitterRect", Reflection.BindingFlags.NonPublic |
                                                                                 Reflection.BindingFlags.GetField |
                                                                                 Reflection.BindingFlags.Instance);

            split.Paint += split_Paint;
            split.MouseDown += split_MouseDown;
            split.MouseUp += split_MouseUp;
            split.MouseClick += split_MouseClick;
            split.MouseMove += split_MouseMove;
            split.MouseLeave += (o, e) => split.Cursor = Cursors.Default;
            split.SplitterMoved += split_SplitterMoved;
            split.SizeChanged += split_Resize;
            split.Disposed += (o, e) => _tooltip.Dispose();

            ((Panel)split.Panel1).ClientSizeChanged += Split_Panel_CollapsedChanged;
            ((Panel)split.Panel2).LocationChanged += Split_Panel_CollapsedChanged;
        }
Beispiel #3
0
        /// <summary>Initializes a new instance of the <see cref="SplitContainerTools"/> class.</summary>
        /// <param name="container">
        /// The <see cref="System.Windows.Forms.SplitContainer"/> to which this instance will be bound.
        /// </param>
        public SplitContainerTools(SplitContainer container)
        {
            split         = container;
            _keepFocus    = false;
            _showGripper  = true;
            _showButtons  = SplitContainerButtons.None;
            _panel1Border = false;
            _panel2Border = false;
            _buttons      = new SplitContainerButton[] { };
            _tooltip      = new ToolTip();

            _splitRectInternal = typeof(SplitContainer).GetField("splitterRect", Reflection.BindingFlags.NonPublic |
                                                                 Reflection.BindingFlags.GetField |
                                                                 Reflection.BindingFlags.Instance);

            split.Paint         += split_Paint;
            split.MouseDown     += split_MouseDown;
            split.MouseUp       += split_MouseUp;
            split.MouseClick    += split_MouseClick;
            split.MouseMove     += split_MouseMove;
            split.MouseLeave    += (o, e) => split.Cursor = Cursors.Default;
            split.SplitterMoved += split_SplitterMoved;
            split.SizeChanged   += split_Resize;
            split.Disposed      += (o, e) => _tooltip.Dispose();

            ((Panel)split.Panel1).ClientSizeChanged += Split_Panel_CollapsedChanged;
            ((Panel)split.Panel2).LocationChanged   += Split_Panel_CollapsedChanged;
        }