【发布时间】:2014-03-12 11:52:26
【问题描述】:
我有一个使用表单设计器创建的菜单条。然后我想以编程方式在菜单条下添加一个工具条工具栏。原因是这个工具栏是我作为插件添加到主应用程序的一组工具。因此,加载插件时,我会创建工具栏。
当我使用表单设计器手动将工具条添加到表单时,工具条正确定位在菜单条下方。但是,当我以编程方式添加它时,它会捕捉到菜单条上方的表单的最顶部。这是我用来以编程方式添加工具条的代码:
stereoBar = new ToolStrip();
stereoBar.Anchor = (AnchorStyles)(AnchorStyles.Top | AnchorStyles.Left);
//y location is set to 22, the width of the menustrip
stereoBar.Location = new System.Drawing.Point(0, 22);
stereoBar.Dock = DockStyle.Top;
stereoBar.Name = "StereoToolbar";
stereoBar.Text = "Stereo Plugin Toolbar";
stereoBar.ShowItemToolTips = true;
stereoBar.GripMargin = new Padding(2);
Controls.Add(stereoBar);
我在这里缺少什么简单的东西吗?
提前致谢!
【问题讨论】:
-
也许您需要将它们添加到菜单条而不是控件?
-
这确实是很奇怪的行为,也很容易重现,我发现真正奇怪的一件事是生成的设计器代码似乎根本不包含任何
DockStyle设置 -
控件集合中控件的顺序很重要。您需要附加
stereoBar.BringToFront();以使其停靠在菜单条下方。 -
@HansPassant BringToFront() 运行良好,感谢您指出这一点! @DrCopyPaste 我同意你的观点,我查看了生成的设计器代码,试图找出是否有不同的事情发生。我唯一注意到的(你在下面指出的)是在设计器代码中,最后要添加的是相对于所有其他自动创建的控件的菜单条!