淺談DevExpress<五>:TreeList簡單的美化——自定義單元格,加注釋以及行序號


  今天就以昨天的列表為例,實現以下效果:預算大於110萬的單元格突出顯示,加上行序號以及注釋,如下圖:

  添加行序號要用到CustomDrawNodeIndicator方法,要注意的是,取得的節點索引是從0開始的,所以要+1以便第一行從一開始算起。

     private void treeList1_CustomDrawNodeIndicator(object sender, CustomDrawNodeIndicatorEventArgs e)
        {
            TreeList tree = sender as DevExpress.XtraTreeList.TreeList;
            tree.IndicatorWidth = 30;
            IndicatorObjectInfoArgs args = e.ObjectArgs as IndicatorObjectInfoArgs;
            args.DisplayText = (tree.GetVisibleIndexByNode(e.Node) + 1).ToString();
        }

  若要添加單元格注釋,則要用到toolTipController控件:。將其拉入界面中,並將Treelist的tooltipcontroller屬性設置為剛才的控件名稱,然后定義控件的GetActiveObjectInfo事件,本例顯示了單元格的內容、列和節點的索引:

        private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
        {
            if (e.SelectedControl is DevExpress.XtraTreeList.TreeList)
            {
                TreeList tree = (TreeList)e.SelectedControl;
                TreeListHitInfo hit = tree.CalcHitInfo(e.ControlMousePosition);

                if (hit.HitInfoType == HitInfoType.Cell)
                {
                    object cellInfo = new TreeListCellToolTipInfo(hit.Node,hit.Column,null);
                    string toolTip = string.Format("{0} (Colomn: {1}, Node ID: {2})", hit.Node[hit.Column],
                        hit.Column.VisibleIndex, hit.Node.Id);
                    e.Info = new DevExpress.Utils.ToolTipControlInfo(cellInfo,toolTip);
                }
            }
        }

  最后,說一下自定義單元格,就是把符合條件的單元格按照定義的方式進行顯示,例如本例是將預算大於110萬的單元格背景變成粉色並且字體白色加粗顯示。

        private void treeList1_NodeCellStyle(object sender, GetCustomNodeCellStyleEventArgs e)
        {
            if (e.Column.FieldName != "Budget") return;
            if (Convert.ToInt32(e.Node.GetValue(e.Column.AbsoluteIndex)) > 1100000)
            {
                e.Appearance.BackColor = Color.FromArgb(80,255,0,255);
                e.Appearance.ForeColor = Color.White;
                e.Appearance.Font = new Font(e.Appearance.Font, FontStyle.Bold);
            }
        }

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM