程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 自定義樣式實現菜單和工具欄的分割線

C# 自定義樣式實現菜單和工具欄的分割線

編輯:C#入門知識

在做WinForm界面布局時,菜單和工具欄必不可少!但是MenuStrip和ToolStrip不能夠對邊框的樣式直接設置,如果想實現菜單和工具欄之間的分割線就不容易實現;今天查閱了一下msdn找到了一個方法,和大家一塊分享,如果有更好的辦法的話可以貼出來,共同進步;

  首先,創建一個CustomProfessionalRenderer類(類名可隨便定義)繼承自ToolStripProfessionalRenderer。代碼如下:

    /// <summary>
    /// 自定義菜單工具欄樣式
    /// </summary>
    class CustomProfessionalRenderer : ToolStripProfessionalRenderer
    {
        //重載ToolStripProfessionalRenderer類的OnRenderToolStripBorder方法
        protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
        {
            base.OnRenderToolStripBorder(e);
            ControlPaint.DrawBorder(
                e.Graphics,
                e.AffectedBounds,
                SystemColors.ControlDarkDark, 0, ButtonBorderStyle.None, SystemColors.Control, 1, ButtonBorderStyle.Inset, SystemColors.ControlDarkDark, 0, ButtonBorderStyle.None, SystemColors.ControlDark, 0, ButtonBorderStyle.None);
        }
    }

 

 

然後,通過設置MenuStrip或ToolStrip的Renderer屬性就ok了。代碼如下:

 

 

        private void Form1_Load(object sender, EventArgs e)
        {
            this.toolStrip1.Renderer = new CustomProfessionalRenderer();  //設置自定義樣式
        }

 

最後,需要注意的是如果設置MenuStrip的邊框的話,效果不是很好,因為子菜單的邊框和控件的主邊框都會使用該樣式繪制;這樣會造成重復,因此建議設置ToolStrip的樣式!效果如下:

                 \

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved