예제 #1
0
 private void gtv_OnCreateEditor(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeEditorEventArgs e)
 {
     if (e.DisplayColumn == 3)
     {
         e.Editor = new Genius.Controls.TreeView.Editors.ComboBoxEditor(this.gtv);
     }
 }
예제 #2
0
 private void gtv_OnAfterCellPainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Info.DisplayColumn == 0)
     {
         //dessine d'un bouton
         Rectangle       r     = new Rectangle(e.Info.ContentRect.Right, e.Info.ContentRect.Top, e.Info.ContentRect.Height, e.Info.ContentRect.Height);
         PushButtonState state = PushButtonState.Normal;
         if (r.Contains(e.Info.MousePosition))
         {
             if (e.Info.Buttons == MouseButtons.Left)
             {
                 state = PushButtonState.Pressed;
             }
             else
             {
                 state = PushButtonState.Hot;
             }
         }
         Genius.Controls.DrawingHelper.DrawButton(e.Info.graphics, r, e.Info.ClipRect, state);
         StringFormat sf = new StringFormat(StringFormatFlags.NoWrap);
         sf.Alignment     = StringAlignment.Center;
         sf.LineAlignment = StringAlignment.Center;
         e.Info.graphics.DrawString("...", this.gtv.Font, SystemBrushes.WindowText, r, sf);
     }
     else if (e.Info.DisplayColumn == 2)
     {
         CheckBoxState state = FChecked ? CheckBoxState.CheckedNormal : CheckBoxState.UncheckedNormal;
         Genius.Controls.DrawingHelper.DrawCheckBox(e.Info.graphics, e.Info.NodeRect, e.Info.ClipRect, state);
     }
 }
예제 #3
0
 private void geniusTreeView1_OnBeforeCellPainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Node.Index != 9)
     {
         if (e.Info.DisplayColumn != 0)
         {
             e.Info.StringFormat.Alignment = StringAlignment.Far;
         }
         if ((e.Info.DisplayColumn % 2 == 0 && e.Node.Index % 2 == 0) ||
             (e.Info.DisplayColumn % 2 == 1 && e.Node.Index % 2 == 1))
         {
             e.Info.BackColor = new GeniusLinearGradientBrush(Color.LightBlue, Color.White);
         }
         else
         {
             e.Info.BackColor = GeniusLinearGradientBrush.Empty;
         }
     }
     else
     {
         e.Info.StringFormat.Alignment = StringAlignment.Far;
         e.Info.BackColor = new GeniusLinearGradientBrush(Color.WhiteSmoke);
         if (e.Info.DisplayColumn < 2)
         {
             e.Info.DefaultDrawing = false;
         }
         if (e.Info.DisplayColumn >= 1)
         {
             e.Info.DrawingOptions |= DrawingOption.ShowGridLines;
         }
     }
 }
예제 #4
0
 private void geniusTreeView1_OnGetNodeText(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeTextEventArgs e)
 {
     if (e.DisplayColumn > 0)
     {
         e.Text = string.Format("Cell({0},{1})", e.DisplayColumn, e.Node.Index);
     }
 }
예제 #5
0
 private void geniusTreeView1_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Node.Data is Group)
     {
         Graphics g = e.Info.graphics;
         using (Font f = new Font(this.Font.Name, this.Font.Size, FontStyle.Bold))
         {
             StringFormat sf = new StringFormat(StringFormatFlags.NoWrap);
             sf.LineAlignment = StringAlignment.Center;
             g.DrawString(e.Node.Text, f, Brushes.Black, e.Info.NodeRect, sf);
         }
         Rectangle r = e.Info.NodeRect;
         r.Width /= 2;
         GeniusLinearGradientBrush glb = new GeniusLinearGradientBrush(Color.LightBlue, Color.White);
         using (Brush br = glb.GetBrush(r))
         {
             using (Pen p = new Pen(br, 1))
             {
                 g.DrawLine(p, r.X, r.Bottom - 1, r.Right - 1, r.Bottom - 1);
             }
         }
         e.Info.Font           = null;
         e.Info.DefaultDrawing = false;
     }
     else
     {
         if (e.Node.Data is GroupTotal)
         {
             e.Info.DrawingOptions &= ~DrawingOption.ShowGridLines;
             e.Info.Font            = new Font(this.geniusTreeView1.Font.Name, this.geniusTreeView1.Font.Size, FontStyle.Bold);
         }
         e.Info.DefaultDrawing = true;
     }
 }
예제 #6
0
 private void gtv_OnInitNode(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeEventArgs e)
 {
     if (e.Node.Data is VistaGroup)
     {
         e.Node.Height = gtv.DefaultNodeHeight + gtv.DefaultNodeHeight / 2;
     }
 }
예제 #7
0
 private void gtv_OnCellMouseEnter(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeCellMouseEventArgs e)
 {
     if (e.DisplayColumn == 0)
     {
         gtv.Invalidate(e.Node);
     }
 }
예제 #8
0
 private void geniusTreeView1_OnGetNodeText(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeTextEventArgs e)
 {
     if (e.Text == null || e.Text.Length == 0)
     {
         e.Text = "Node " + e.Node.Index.ToString();
     }
 }
예제 #9
0
        private void gtv_OnGetNodeText(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeTextEventArgs e)
        {
            VistaItem aItem = e.Node.Data as VistaItem;

            switch (e.DisplayColumn)
            {
            case 0:
                e.Text = aItem.Name;
                break;

            case 1:
                Int64 size = aItem.Size;
                if (size >= 0)
                {
                    e.Text = size.ToString();
                }
                else
                {
                    e.Text = string.Empty;
                }
                break;

            case 2:
                e.Text = aItem.FileType;
                break;

            case 3:
                if (aItem.Date > DateTime.MinValue)
                {
                    e.Text = aItem.Date.ToString();
                }
                break;
            }
        }
예제 #10
0
 private void geniusTreeView1_OnCreateHintWindow(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeHintWindowEventArgs e)
 {
     if (e.HintWindow == null)
     {
         e.HintWindow = new HintImageWindow(geniusTreeView1);
     }
 }
예제 #11
0
 private void gtv_OnGetNodeText(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeTextEventArgs e)
 {
     if (e.DisplayColumn > 0 && e.DisplayColumn < 6)
     {
         e.Text = ((NodeData)e.Node.Data).FColumns[e.DisplayColumn - 1].ToString();
     }
 }
예제 #12
0
        private void gtv_OnDrawHeaderCol(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.DrawHeaderColEventArgs e)
        {
            Rectangle rCol = e.ColumnRect;

            e.Graphics.FillRectangle(Brushes.WhiteSmoke, rCol);
            rCol        = e.ColumnRect;
            rCol.Height = 6;
            SortDirection sortCol = gtv.Header.GetSorting(e.Column);

            if (sortCol != SortDirection.None)
            {
                using (GeniusLinearGradientBrush gbrush = new GeniusLinearGradientBrush(FSelectedBrush.EndColor, FSelectedBrush.BeginColor, 90))
                {
                    using (Brush br = gbrush.GetBrush(rCol))
                    {
                        e.Graphics.FillRectangle(br, rCol);
                    }
                }
                DrawSortingIcone(e.Graphics, rCol, sortCol);
            }
            rCol         = e.ColumnRect;
            rCol.Height -= 7;
            rCol.Y      += 7;
            StringFormat sf = new StringFormat(StringFormatFlags.NoWrap);

            sf.LineAlignment = e.Column.VAlignment;
            sf.Alignment     = e.Column.Alignment;
            using (Brush br = new SolidBrush(e.Column.ForeColor))
            {
                e.Graphics.DrawString(e.Column.Text, e.Column.Font, br, rCol, sf);
            }
            e.Graphics.DrawLine(gtv.Colors.GridLinesColor, rCol.Left, e.ColumnRect.Top, rCol.Left, rCol.Bottom);
            e.Graphics.DrawLine(gtv.Colors.GridLinesColor, rCol.Right, e.ColumnRect.Top, rCol.Right, rCol.Bottom);
            e.DefaultDrawing = false;
        }
예제 #13
0
 private void gtv_OnBeforeCellPainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Info.DisplayColumn == 0)
     {
         e.Info.ContentRect.Width -= e.Info.ContentRect.Height;
     }
 }
예제 #14
0
 private void gtv_OnGetHint(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeGetHintEventArgs e)
 {
     e.HintText = string.Format("Class {0} {1}", e.Node.GetType().FullName, Environment.NewLine);
     if (e.Node.Data != null)
     {
         e.HintText += String.Format("User data type : {0}\r\nUser data value : {1}", e.Node.Data.GetType().ToString(), e.Node.Data);
     }
 }
예제 #15
0
 private void gtv_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Node.Level == 2)
     {
         //
         e.Info.DrawingOptions = DrawingOption.HideTreeLines;
     }
 }
예제 #16
0
 private void gtv_OnGetImageIndex(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeImageIndexEventArgs e)
 {
     if (e.ImageIndexType == ImageIndexType.NormalImage)
     {
         e.ImageIndex = e.Node.Data is VistaFolder ? 0 :
                        e.Node.Data is VistaGroup ? -1 : 1;
     }
 }
예제 #17
0
        private void gtv_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
        {
            if (e.Node.Data is VistaGroup)
            {
                Rectangle  r;
                VistaGroup group = e.Node.Data as VistaGroup;
                e.Info.DefaultDrawing = false;
                //painture du noeud sous la souris ou du noeud selectionné
                if (e.Node == FUnderMouse || IsSelected(e.Node))
                {
                    r = e.Info.NodeRect;
                    r.Inflate(-2, 0);
                    r.Height -= 1;

                    //RoundRect
                    GeniusLinearGradientBrush geniusBr = e.Node == FUnderMouse ? FOverBrush : FSelectedBrush;
                    DrawRoundRect(geniusBr, FSelLinePen, r, e.Info.graphics);
                }
                SizeF size = e.Info.graphics.MeasureString(group.Name, gtv.Font);
                e.Info.graphics.DrawString(group.Name, gtv.Font, Brushes.Black, e.Info.NodeRect.X + 5, e.Info.NodeRect.Y + e.Info.NodeRect.Height / 2 - size.Height / 2);
                int y = (e.Info.ContentRect.Bottom + e.Info.ContentRect.Top) / 2;
                int x = (int)size.Width + e.Info.ContentRect.X + 10;
                e.Info.graphics.DrawLine(Pens.LightGray, x, y, e.Info.ContentRect.Right - 25, y);
                //dessin des ligne des colonne
                //à faire
                x = e.Info.NodeRect.Left;
                foreach (GeniusTreeViewColonne aCol in gtv.Header.Displays)
                {
                    e.Info.graphics.DrawLine(gtv.Colors.GridLinesColor, x, e.Info.NodeRect.Top, x, e.Info.NodeRect.Bottom);
                    x += aCol.Width;
                }
                //e.Info.graphics.DrawLine(gtv.Colors.GridLinesColor, e.Info.NodeRect.Left, e.Info.NodeRect.Top, e.Info.NodeRect.Left, e.Info.NodeRect.Bottom);
                //dessin de l'expand à droite
                Pen p = new Pen(Brushes.Gray);
                p.Width  = 3;
                p.EndCap = LineCap.ArrowAnchor;
                r        = new Rectangle(e.Info.ContentRect.Right - 15, y, 0, 0);
                r.Inflate(7, 7);
                Debug.WriteLine(string.Format("m : {0}, r:{1}", e.Info.MousePosition, r));
                if (r.Contains(e.Info.MousePosition))
                {
                    using (Brush br = FSelectedBrush.GetBrush(r))
                    {
                        e.Info.graphics.FillEllipse(br, r);
                        e.Info.graphics.DrawEllipse(Pens.LightGray, r);
                    }
                }
                if (e.Node.IsExpanded)
                {
                    e.Info.graphics.DrawLine(p, e.Info.ContentRect.Right - 15, y + 2, e.Info.ContentRect.Right - 15, y - 3);
                }
                else
                {
                    e.Info.graphics.DrawLine(p, e.Info.ContentRect.Right - 15, y - 2, e.Info.ContentRect.Right - 15, y + 3);
                }
            }
        }
예제 #18
0
        private void gtv_OnInitNode(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeEventArgs e)
        {
            int value = (int)e.Node.Data;

            if (value % 2 == 0)
            {
                e.Node.State &= (~NodeState.Visible);
            }
        }
예제 #19
0
        private void gtv_OnGetNodeText(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeTextEventArgs e)
        {
            int aCol = gtv.Header.DisplayIndexToIndex(e.DisplayColumn);

            if (aCol == 0)
            {
                e.Text = (e.Node.Level * 10 + e.Node.Index).ToString();
            }
        }
예제 #20
0
 private void geniusTreeView1_OnSelected(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.SelectedEventArgs e)
 {
     pnlContext.Enabled          = true;
     cbHasCheck.Checked          = (e.Node.State & NodeState.HasCheck) == NodeState.HasCheck;
     cbHasChildren.Checked       = (e.Node.State & NodeState.HasChildren) == NodeState.HasChildren;
     cbHasSignaled.Checked       = (e.Node.State & NodeState.Signaled) == NodeState.Signaled;
     textboxImageIndex.Text      = e.Node.ImageIndex.ToString();
     textboxImageStateIndex.Text = e.Node.ImageStateIndex.ToString();
 }
예제 #21
0
 private void geniusTreeView1_OnGetHint(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeGetHintEventArgs e)
 {
     if (e.Node.Data is DataNodeImage)
     {
         if (e.DisplayColumn == 1)
         {
             e.HintText = (e.Node.Data as DataNodeImage).FileName;
         }
     }
 }
예제 #22
0
 /// <summary>
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 /// </summary>
 private void InitializeComponent()
 {
     this.geniusTreeView1        = new Genius.Controls.TreeView.GeniusTreeView();
     this.geniusTreeViewColonne1 = new Genius.Controls.TreeView.GeniusTreeViewColonne();
     this.SuspendLayout();
     // GeniusTreeView By Pierrick Gourlain
     //
     // geniusTreeView1
     //
     this.geniusTreeView1.Alignment                     = System.Drawing.StringAlignment.Near;
     this.geniusTreeView1.AllowEdit                     = false;
     this.geniusTreeView1.AutoSort                      = false;
     this.geniusTreeView1.BackColor                     = System.Drawing.SystemColors.Window;
     this.geniusTreeView1.BorderStyle                   = System.Windows.Forms.BorderStyle.FixedSingle;
     this.geniusTreeView1.Colors.HeaderColor            = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.Color.White, System.Drawing.Color.LightGray, 90F);
     this.geniusTreeView1.Colors.SelectedColor          = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.SystemColors.Highlight, System.Drawing.Color.Empty, 0F);
     this.geniusTreeView1.Colors.SelectedTextColor      = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.SystemColors.HighlightText, System.Drawing.Color.Empty, 0F);
     this.geniusTreeView1.Colors.SelectedUnfocusedColor = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.SystemColors.InactiveCaption, System.Drawing.Color.Empty, 0F);
     this.geniusTreeView1.Colors.SignaledPenColor       = new Genius.Controls.TreeView.Colors.GeniusPen(System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(165)), ((System.Byte)(0))), 2F);
     this.geniusTreeView1.Colors.TextColor              = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.Color.Black, System.Drawing.Color.Empty, 0F);
     this.geniusTreeView1.DefaultDrawingOption          = Genius.Controls.TreeView.DrawingOptions.None;
     this.geniusTreeView1.Dock                   = System.Windows.Forms.DockStyle.Fill;
     this.geniusTreeView1.Header.Font            = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
     this.geniusTreeView1.Header.MainColumnIndex = 0;
     this.geniusTreeView1.HeaderColonnes.AddRange(new Genius.Controls.TreeView.GeniusTreeViewColonne[] {
         this.geniusTreeViewColonne1
     });
     this.geniusTreeView1.KeysGridMode          = false;
     this.geniusTreeView1.Location              = new System.Drawing.Point(0, 0);
     this.geniusTreeView1.Name                  = "geniusTreeView1";
     this.geniusTreeView1.Size                  = new System.Drawing.Size(440, 328);
     this.geniusTreeView1.TabIndex              = 0;
     this.geniusTreeView1.Text                  = "geniusTreeView1";
     this.geniusTreeView1.UseColumns            = true;
     this.geniusTreeView1.OnBeforeNodePainting += new Genius.Controls.TreeView.OnPaintNodeDelegate(this.geniusTreeView1_OnBeforeNodePainting);
     this.geniusTreeView1.OnBeforeCellPainting += new Genius.Controls.TreeView.OnPaintNodeDelegate(this.geniusTreeView1_OnBeforeCellPainting);
     //
     // geniusTreeViewColonne1
     //
     this.geniusTreeViewColonne1.BackColor   = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.Color.Empty, System.Drawing.Color.Empty, 0F);
     this.geniusTreeViewColonne1.Font        = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
     this.geniusTreeViewColonne1.FontColonne = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
     this.geniusTreeViewColonne1.ForeColor   = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.Color.Empty, System.Drawing.Color.Empty, 0F);
     this.geniusTreeViewColonne1.HeadColor   = new Genius.Controls.GeniusLinearGradientBrush(System.Drawing.Color.Empty, System.Drawing.Color.Empty, 0F);
     this.geniusTreeViewColonne1.Text        = "Colonne 0";
     //
     // TestChapter
     //
     this.Controls.Add(this.geniusTreeView1);
     this.Name         = "TestChapter";
     this.Size         = new System.Drawing.Size(440, 328);
     this.Load        += new System.EventHandler(this.TestChapter_Load);
     this.SizeChanged += new System.EventHandler(this.TestChapter_SizeChanged);
     this.ResumeLayout(false);
 }
예제 #23
0
 private void geniusTreeView1_OnGetFontNode(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeFontEventArgs e)
 {
     if (e.Node.Level == 1)
     {
         e.Font = new Font("Times News Roman", 20, FontStyle.Bold);
     }
     else if (e.Node.Level == 2)
     {
         e.Font = new Font("Times News Roman", 12, FontStyle.Bold);
     }
 }
예제 #24
0
        private void geniusTreeView1_OnBeforeNodePainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
        {
            e.Info.StringFormat = new StringFormat();
            e.Info.StringFormat.LineAlignment = StringAlignment.Near;

            /*if (e.Node.Level == 1)
             * {
             *      e.Info.Font	= new Font("Times News Roman", 20, FontStyle.Bold);
             * }
             */
        }
예제 #25
0
 private void gtv_OnInitEdit(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.EditEventArgs e)
 {
     if (e.DisplayColumn == 3)
     {
         ComboBox cb = (ComboBox)e.Editor.Control;
         cb.Items.Add("[Ajouter]");
         cb.Items.Add("[Supprimer]");
         e.Value = "coucou";
         cb.SelectionChangeCommitted += new EventHandler(cb_SelectionChangeCommitted);
     }
 }
예제 #26
0
 private void gtv_OnInitNode(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeEventArgs e)
 {
     if (e.Node.Data is ArrayList)
     {
         e.Node.Text = "Node with sub-nodes";
     }
     else
     {
         e.Node.Text = e.Node.Data.ToString();
     }
 }
예제 #27
0
 private void geniusTreeView1_OnBeforeCellPainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Node.Level == 2)
     {
         e.Info.StringFormat.FormatFlags   = 0;
         e.Info.StringFormat.LineAlignment = StringAlignment.Near;
     }
     else if (e.Node.Level == 1)
     {
         e.Info.StringFormat.Trimming = StringTrimming.EllipsisCharacter;
     }
 }
예제 #28
0
 private void gtv_OnCellMouseUp(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.NodeCellMouseEventArgs e)
 {
     if (e.DisplayColumn == 0)
     {
         Rectangle r = gtv.GetCellRect(e.Node, 0);
         r = new Rectangle(r.Right - r.Height, r.Top, r.Height, r.Height);
         Debug.WriteLine(string.Format("Capture = {0}", gtv.Capture));
         if (r.Contains(e.Position))
         {
             MessageBox.Show("click on button !!");
         }
     }
 }
예제 #29
0
        private void gtv_OnAfterPaintFooter(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintFooterEventArgs e)
        {
            Rectangle r = e.FooterRect;

            r.Height -= 1;
            e.Graphics.DrawLine(Pens.LightGray, r.Left, r.Top, r.Right, r.Top);
            e.Graphics.DrawLine(Pens.White, r.Left, r.Top + 1, r.Right, r.Top + 1);
            if (e.DisplayColumn > 4)
            {
                e.Graphics.DrawLine(Pens.LightGray, r.Left, r.Top + 3, r.Left, r.Bottom - 3);
                e.Graphics.DrawLine(Pens.White, r.Left + 1, r.Top + 3, r.Left + 1, r.Bottom - 3);
            }
        }
예제 #30
0
 private void gtv_OnBeforeCellPainting(Genius.Controls.TreeView.GeniusTreeView Sender, Genius.Controls.TreeView.PaintNodeEventArgs e)
 {
     if (e.Info.DisplayColumn == 0)
     {
         if (e.Node.IsExpanded || (e.Node.NextSibling != null && e.Node.Level == 2))
         {
             e.Info.CellGridLines = Lines.Vertical;
         }
         if ((e.Node.Level == 2 && e.Node.NextSibling == null))
         {
             e.Info.CellGridLines = Lines.Vertical | Lines.Bottom;
         }
     }
 }