如何去掉Toolstrip底边上的这条线----RenderMode为system时,Toolstrip控件底边会有一条线,怎么才能去掉它?

wind96900 2007-12-24 02:14:33
因为项目需要使用skin,所以我必须把Toolstrip的RenderMode设置为system,这样才可以应用skin theme,但是这样一来在Toolstrip的底部就总有一条边线,无论如何也去不掉,我已经把Toolstrip及其内部button的Margin和Padding都设置为0了,还是不行。
...全文
680 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind96900 2007-12-27
  • 打赏
  • 举报
回复
我要怎么才能结贴子啊,分数也加不上去 :(
wind96900 2007-12-26
  • 打赏
  • 举报
回复
to hbxtlhx(平民百姓):
多谢多谢,那条线终于没了,不过似乎您只是在paint中cut掉了那条边,能否告知小妹为什么在RenderMode为system时会出现那么一条边线呢?

to ouhou:
一样感谢您,这个方法同样有效的,但是,为什么重载了OnRenderToolStripBorder方法又什么也不做,竟然产生了不同的效果呢?是不是只要不显示调用base.OnRenderToolStripBorder(e)就不会执行父类的这个边框绘制了?

再次感谢二位的回答,我会给两位每人50的。
ouhou 2007-12-24
  • 打赏
  • 举报
回复
public class CustomToolStripSystemRenderer : ToolStripSystemRenderer
{

protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//base.OnRenderToolStripBorder(e);
}

}

在Form中设置toolStrip1.Renderer = new RCustomToolStripSystemRenderer();
北京的雾霾天 2007-12-24
  • 打赏
  • 举报
回复
这样试一下:

class NewToolStrip: ToolStrip
{
protected override void OnPaint(PaintEventArgs e)
{
if (this.RenderMode == ToolStripRenderMode.System)
{
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height - 2);
e.Graphics.SetClip(rect);
}
base.OnPaint(e);
}
}
bobyisland 2007-12-24
  • 打赏
  • 举报
回复
GripStyle = Hidden

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧