翻譯|使用教程|編輯:鮑佳佳|2020-08-19 14:26:25.890|閱讀 542 次
概述:DotNetBar for WinForms是一個(gè)擁有89個(gè)組件的用戶界面控件套包,本文講述了如何在DotNetBar for WinForms AdvTree控件中顯示行號(hào),以及如何用代碼實(shí)現(xiàn)在AdvTree的左邊距中添加顯示行號(hào)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
DotNetBar for WinForms是一個(gè)擁有89個(gè)組件的用戶界面控件套包,用戶可以使用Visual Studio 2005-2015輕松地創(chuàng)建專業(yè)的用戶界面。十多年來(lái)DotNetBar幫助開(kāi)發(fā)人員輕松地創(chuàng)建易用的專業(yè)Windows Forms (WinForms) 用戶界面。DotNetBar是全世界第一個(gè)引入全功能Office 2013、Office 2010、Windows 7、 Office 2007 style Ribbon控件以及Visual Studio 2005-2013,Metro等主題風(fēng)格和樣式的控件。
點(diǎn)擊下載DotNetBar for WinForms最新試用版
如何在WinForms AdvTree控件的DotNetBar中顯示行號(hào)
僅使用幾行代碼,就有可能在AdvTree的左邊距中呈現(xiàn)任何內(nèi)容,本文將說(shuō)明如何添加行號(hào)。
向控件集advTree添加邊距。BackgroundStyle.PaddingLeft = 24 property。在此示例中,它將設(shè)置為24像素。處理advTree.Render和advTree.GetRenderer()。RenderNodeBackground事件以渲染左邊距背景和行號(hào)。您可以將此代碼放置在表單加載事件中:
	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;
    }
}
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: