希望我正确理解了您的问题,您正尝试将按钮停靠在 ToolStrip 控件的左侧,如下图所示。
要实现这一点,您需要先将两个控件的 Dock 属性设置为 Left
要将按钮控件作为第一个左侧停靠控件,您可以使用 Document Outline 窗口来实现此目的,该窗口使用 View > Other Windows > Document Outline打开> 菜单,然后通过拖动 ToolStrip 下方的按钮来设置停靠优先级,如上图所示。
要支持多个按钮,您可以将上面示例中的单个按钮替换为包含所需按钮的面板。
另外,为了避免重复造轮子,您可以查看 SourceForge 上免费提供的 DockPanel Suite 项目。
编辑:根据评论中的要求。
您可以将所有想要支持垂直文本的按钮链接到绘制事件,如下所示
private void VerticalButtonTextEvent(object sender, PaintEventArgs e)
{
Button button = sender as Button;
if (button == null) return;
Graphics g = e.Graphics;
g.FillRectangle(SystemBrushes.Control, button.ClientRectangle);
using (Font f = new Font("Times New Roman", 8))
{
SizeF szF = g.MeasureString(button.Text, f);
g.TranslateTransform(
(float) ((Button) sender).ClientRectangle.Width/(float) 2 + szF.Height/(float) 2,
(float) ((Button) sender).ClientRectangle.Height/(float) 2 -
(float) szF.Width/(float) 2);
g.RotateTransform(90);
g.DrawString(button.Text, f, Brushes.Black, 0, 0);
}
}