如何在winform c#中禁用工具条下的行?

替代文字http://img13.imageshack.us/img13/5215/20091217052234.png

这条线?

这是“系统”渲染器中的错误 , 此错误报告中的详细信息。

微软的回复提供了一个非常简单的解决方法:

1)创建ToolStripSystemRenderer的子类,重写OnRenderToolStripBorder并使其成为无操作:

 public class MySR : ToolStripSystemRenderer { public MySR() { } protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { //base.OnRenderToolStripBorder(e); } } 

2)使用该渲染器作为工具条:

 toolStrip3.Renderer = new MySR(); 

您可能希望添加类型检查以避免在ToolStripDropDownMenu / etc上丢失边框。 (由于inheritance自ToolStrip ,它会自动启动相同的自定义渲染器用法):

 protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) { if (e.ToolStrip.GetType() == typeof(ToolStrip)) { // skip render border } else { // do render border base.OnRenderToolStripBorder(e); } } 

使用ToolStripSystemRenderer错过的ToolStripDropDownMenu边框不太明显,但使用ToolStripSystemRenderer成为真正的眼睛。

另外,设置System.Windows.Forms.ToolStripManager.Renderer = new MySR(); 如果您希望appwide的所有ToolStrip实例默认使用MySR ,则可能MySR用。