翻譯|使用教程|編輯:鮑佳佳|2020-08-19 14:26:25.890|閱讀 520 次
概述:DotNetBar for WinForms是一個擁有89個組件的用戶界面控件套包,本文講述了如何在DotNetBar for WinForms AdvTree控件中顯示行號,以及如何用代碼實現在AdvTree的左邊距中添加顯示行號。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DotNetBar for WinForms是一個擁有89個組件的用戶界面控件套包,用戶可以使用Visual Studio 2005-2015輕松地創建專業的用戶界面。十多年來DotNetBar幫助開發人員輕松地創建易用的專業Windows Forms (WinForms) 用戶界面。DotNetBar是全世界第一個引入全功能Office 2013、Office 2010、Windows 7、 Office 2007 style Ribbon控件以及Visual Studio 2005-2013,Metro等主題風格和樣式的控件。
點擊下載DotNetBar for WinForms最新試用版
如何在WinForms AdvTree控件的DotNetBar中顯示行號
僅使用幾行代碼,就有可能在AdvTree的左邊距中呈現任何內容,本文將說明如何添加行號。
向控件集advTree添加邊距。BackgroundStyle.PaddingLeft = 24 property。在此示例中,它將設置為24像素。處理advTree.Render和advTree.GetRenderer()。RenderNodeBackground事件以渲染左邊距背景和行號。您可以將此代碼放置在表單加載事件中:
advTree1.Render + =new AdvTreeRenderEventHandler(AdvTreeRender);
advTree1.GetRenderer()。RenderNodeBackground + =new NodeRendererEventHandler(TreeRenderNodeBackground);
void TreeRenderNodeBackground(object sender, DevComponents.AdvTree.Display.NodeRendererEventArgs e) { Graphics g = e.Graphics; Node n = e.Node; Rectangle r = e.NodeBounds; Rectangle numberBounds = new Rectangle(4, r.Y, advTree1.BackgroundStyle.PaddingLeft - 4, r.Height); Region oldClip = g.Clip; int i = advTree1.GetNodeFlatIndex(n); Rectangle lineNumberBounds = advTree1.ClientRectangle; lineNumberBounds.X += 1; // Border lineNumberBounds.Width = advTree1.BackgroundStyle.PaddingLeft - 1; lineNumberBounds.Y = advTree1.Columns.Bounds.Bottom; lineNumberBounds.Height = lineNumberBounds.Height - advTree1.Columns.Bounds.Bottom; if (advTree1.HScrollBar != null && advTree1.HScrollBar.Visible) lineNumberBounds.Height -= advTree1.HScrollBar.Height; g.SetClip(lineNumberBounds); g.SetClip(numberBounds, System.Drawing.Drawing2D.CombineMode.Intersect); g.DrawString(i.ToString(), advTree1.Font, Brushes.Red, numberBounds.Location); g.Clip = oldClip; } void AdvTreeRender(object sender, AdvTreeRenderEventArgs e) { if (e.RenderType == eAdvTreeRenderType.Background) { AdvTree tree = (AdvTree)sender; Graphics g = e.Graphics; Region oldClip = g.Clip; g.ResetClip(); g.FillRectangle(Brushes.WhiteSmoke, new Rectangle(0, 0, 24, tree.Height)); g.Clip = oldClip; } }
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: