+1  A: 

For anyone interested, I ended up creating a custom ToolStripRenderer class after all. Here I had to override several methods to get the wanted result, and the result came out pretty nice. To draw the button outline I simply used ControlPaint, and for the dropped-down tab-like look I drew some lines with the ControlDarkDark system color. Not to get into the gory details, there are several tutorials out there describing this already. Now, it does seem weird that to get a button-like behaviour from a ToolStripDropDownButton one has to do the drawing oneself, but I'm not ruling out that a setting might have clashed with another somewhere.

I can post the code if anyone is interested.

Pedery
A: 

Hi,

I've got exact the same issue with the annoying gray line in the toolstrip. Could you please post your code for the custom ToolStripRenderer class? It would really help me out.

Thanx in advance,

BBA

BBA
Hi!Just added the code below. It should give you the kickstart you need to work out your own look. Hope this helps.
Pedery
+1  A: 
/// <summary>
/// This class provides custom rendering code for the ToolStrip and ToolStripDropDownButton because the standard windows
/// rendering gave it a very flat look.
/// </summary>
public class CustomToolStripRenderer : ToolStripRenderer {
 ToolStripDropDownButton toolStripDDButton;

 public CustomToolStripRenderer(ToolStripDropDownButton toolStripDropDownButton) : base() {
  toolStripDDButton = toolStripDropDownButton;
 }

 //protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs tsirea) {
 //    // Check if the item is selected or hovered over.
 //    if (tsirea.Item.Selected || tsirea.Item.Pressed) {
 //        LinearGradientBrush brush = new LinearGradientBrush(tsirea.Item.Bounds, Color.DarkBlue, Color.DarkGreen, 90);
 //        tsirea.Graphics.FillRectangle(brush, 0, 0, tsirea.Item.Width, tsirea.Item.Height);
 //    }
 //}

 protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs tsrea) {
  // This event occurs before the OnRenderDropDownButtonBackground event...

  if (toolStripDDButton.Pressed) {
   base.OnRenderToolStripBackground(tsrea);
  }
  else if (toolStripDDButton.Selected) {
   ControlPaint.DrawButton(tsrea.Graphics, tsrea.AffectedBounds, ButtonState.Normal);
  }
  else {
   ControlPaint.DrawButton(tsrea.Graphics, tsrea.AffectedBounds, ButtonState.Normal);
  }
 }

 //protected override void OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs tsirea) {
 //    // Happens every time the button is hovered over as well, and upon mouseleave

 //    //ControlPaint.DrawButton(tsirea.Graphics, tsirea.Item.ContentRectangle, ButtonState.Normal);
 //    base.OnRenderDropDownButtonBackground(tsirea);
 //}

 protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs tsrea) {
  //This event occurs after the OnRenderDropDownButtonBackground event...
  //Thus it will paint over whatever is already painted in the OnRenderDropDownButtonBackground event.

  //Debug.Println("OnRenderToolStripBorder");
  if (toolStripDDButton.Pressed) {
   // Draw the top and left borders of the component so that it looks like a tab page:
   tsrea.Graphics.DrawLine(SystemPens.ControlDarkDark, tsrea.AffectedBounds.Left, tsrea.AffectedBounds.Top, tsrea.AffectedBounds.Left, tsrea.AffectedBounds.Bottom);
   tsrea.Graphics.DrawLine(SystemPens.ControlDarkDark, tsrea.AffectedBounds.Left, tsrea.AffectedBounds.Top, tsrea.AffectedBounds.Right, tsrea.AffectedBounds.Top);
  }
  base.OnRenderToolStripBorder(tsrea);
 }

}
Pedery