public Form1()
{
InitializeComponent();
this.toolStripContainer1.TopToolStripPanel.RowMargin = new Padding(0);
}
RowMargin内の ToolStripPanelsのプロパティを設定するだけToolStripContainerです。デザイナーでは使用できないため、上記のようにコードで設定する必要があります。どうやらデフォルトでは、そのLeftプロパティはRowMargin3 に設定されています。これが、0 に設定しても場所が変わらなかった理由です。
結果:

編集: 自分の好奇心を刺激したようです。現在、下部の 2 ピクセルのギャップを取り除くことができるかどうかを確認しようとしています。これまでのところ、追跡するのははるかに難しいようです。
編集2:わかりました。ToolStripそれはの Rendererによって行われていました。この例では、 として使用Systemしていたので、メソッドを継承してオーバーライドRenderModeする新しいクラスをプロジェクトに追加し、ベース メソッドへの呼び出しをコメント アウトしました。ToolStripSystemRendererOnRenderToolStripBorder
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class MyToolStripSystemRenderer : ToolStripSystemRenderer
{
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//base.OnRenderToolStripBorder(e);
}
}
}
次に、フォームのコンストラクターに別の行を追加して、カスタム レンダラーを割り当てました。
public Form1()
{
InitializeComponent();
this.toolStrip1.Renderer = new MyToolStripSystemRenderer();
this.toolStripContainer1.TopToolStripPanel.RowMargin = new Padding(0);
}
結果:

編集 3: 今日、これが既知のバグであることがわかりましたToolStripSystemRenderer。最初は何か関係があると思っていたので見つからなかったと思いますToolStripContainer。とにかく、助けてくれる人のために、ツールストリップの「境界」に関するSOの質問があります。https://stackoverflow.com/a/2060360/2056131