怎样给winform 窗体传值窗体加分隔线

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,&<span style="color: #,&ButtonBorderStyle.None,&SystemColors.Control,&<span style="color: #,&ButtonBorderStyle.Inset,&SystemColors.ControlDarkDark,&<span style="color: #,&ButtonBorderStyle.None,&SystemColors.ControlDark,&<span style="color: #,&ButtonBorderStyle.None);
然后,通过设置MenuStrip或ToolStrip的Renderer属性就ok了。代码如下:
&&&&&&&&private&void&Form1_Load(object&sender,&EventArgs&e)
&&&&&&&&&&&&this.toolStrip1.Renderer&=&new&CustomProfessionalRenderer();&&//设置自定义样式
最后,需要注意的是如果设置MenuStrip的边框的话,效果不是很好,因为子菜单的边框和控件的主边框都会使用该样式绘制;这样会造成重复,因此建议设置ToolStrip的样式!效果如下:
&&&&&&&&&&&&&&&& &&&&

我要回帖

更多关于 winform窗体大小固定 的文章

 

随机推荐