由于我无法(我知道)使用表单设计器将轨迹栏添加到状态条,因此我在表单加载方法中添加了以下代码:
zoomTrackBar = new TrackBar();
ToolStripControlHost myControlHost = new ToolStripControlHost(zoomTrackBar);
mainStatus.Items.Add(myControlHost);
zoomTrackBar.Minimum = 0;
zoomTrackBar.Maximum = 100;
myControlHost.Height = statusLabel.Height; // statusLabel is a label already in the statusstrip... I'd like to match its height but not working
有些事情不能正常工作。首先,在我最大化窗口或反复随机调整窗口大小之前,轨迹栏甚至不会出现。一旦显示出来,无论窗口状态如何,它都会保留在那里。
在添加跟踪栏之前,状态栏中已经有三个项目。第一项是自动调整大小的标签,它会弹出到第二个和第三个(固定宽度)标签(因此较小的固定宽度标签始终位于 x 和 y 坐标的右侧)。
创建的轨迹栏是巨大的。更改控制主机的高度或跟踪栏本身不会更改跟踪栏的高度。它使整个状态条变得巨大。
如果这样更容易的话,我什至会满足于添加一个生成临时垂直轨迹栏的按钮。
在 mainStatus 上调用 Invalidate() 没有帮助。