public TreeViewAdv()
        {
            InitializeComponent();
            SetStyle(ControlStyles.AllPaintingInWmPaint
                     | ControlStyles.UserPaint
                     | ControlStyles.OptimizedDoubleBuffer
                     | ControlStyles.ResizeRedraw
                     | ControlStyles.Selectable
                     , true);


            if (Application.RenderWithVisualStyles)
            {
                _columnHeaderHeight = 20;
            }
            else
            {
                _columnHeaderHeight = 17;
            }

            //BorderStyle = BorderStyle.Fixed3D;
            _hScrollBar.Height = SystemInformation.HorizontalScrollBarHeight;
            _vScrollBar.Width  = SystemInformation.VerticalScrollBarWidth;
            _rowLayout         = new FixedRowHeightLayout(this, RowHeight);
            _rowMap            = new List <TreeNodeAdv>();
            _selection         = new List <TreeNodeAdv>();
            _readonlySelection = new ReadOnlyCollection <TreeNodeAdv>(_selection);
            _columns           = new TreeColumnCollection(this);
            _toolTip           = new ToolTip();

            _measureContext          = new DrawContext();
            _measureContext.Font     = Font;
            _measureContext.Graphics = Graphics.FromImage(new Bitmap(1, 1));

            Input   = new NormalInputState(this);
            _search = new IncrementalSearch(this);
            CreateNodes();
            CreatePens();

            ArrangeControls();

            _plusMinus = new NodePlusMinus();
            _controls  = new NodeControlsCollection(this);

            Font = _font;
            ExpandingIcon.IconChanged += ExpandingIconChanged;
        }
Example #2
0
 internal void ChangeInput()
 {
     if ((ModifierKeys & Keys.Shift) == Keys.Shift)
     {
         if (!(Input is InputWithShift))
         {
             Input = new InputWithShift(this);
         }
     }
     else if ((ModifierKeys & Keys.Control) == Keys.Control)
     {
         if (!(Input is InputWithControl))
         {
             Input = new InputWithControl(this);
         }
     }
     else
     {
         if (!(Input.GetType() == typeof(NormalInputState)))
         {
             Input = new NormalInputState(this);
         }
     }
 }