为什么这个ToolStripControlHost不起作用?

isp*_*iro 2 c# winforms toolstripcontrolhost

我试图模仿这个答案但是虽然这有效:

public class TrackBarMenuItem : ToolStripControlHost
{
    TrackBar trackBar;
    public TrackBarMenuItem()
        : base(new TrackBar())
    {
        trackBar = Control as TrackBar;
    }
}
Run Code Online (Sandbox Code Playgroud)

这不是:

public class PanelMenuItem : ToolStripControlHost
{
    Panel panel;
    public PanelMenuItem()
        : base(new Panel())
    {
        panel = Control as Panel;
        Visible = true;
        Enabled = true;
        panel.AutoSize = false;
        panel.Size = new Size(100, 50);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么?

我这样叫他们:

contextMenuStrip1.Items.Add(new TrackBarMenuItem());
contextMenuStrip1.Items.Add(new PanelMenuItem());
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 6

设置面板的最小尺寸:

public class PanelMenuItem : ToolStripControlHost {
  Panel panel;
  public PanelMenuItem()
    : base(new Panel()) {
    panel = Control as Panel;
    Visible = true;
    Enabled = true;
    panel.AutoSize = false;
    panel.Size = new Size(100, 50);

    panel.MinimumSize = panel.Size;
  }
}
Run Code Online (Sandbox Code Playgroud)