gpt4 book ai didi

c# toolstrip 不在 menustrip 下停靠

转载 作者:行者123 更新时间:2023-12-03 21:00:34 27 4
gpt4 key购买 nike

我有一个使用表单设计器创建的菜单条。然后我想以编程方式在菜单条下添加一个工具条工具栏。原因是这个工具栏是我作为插件添加到主应用程序的一组工具。因此,当加载插件时,我创建了工具栏。

当我使用窗体设计器手动将工具条添加到窗体时,工具条正确定位在菜单条下方。但是,当我以编程方式添加它时,它会捕捉到表单的最顶部,在菜单条上方。这是我用来以编程方式添加工具条的代码:

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);

我在这里缺少什么简单的东西吗?

提前致谢!

最佳答案

正如 this answer 中所述,当将控件停靠在表单中时,将它们添加到表单的顺序很重要;即当添加多个都停靠在顶部的控件时,最后添加的控件将位于最顶部

因此,因为您以编程方式添加工具条并通过设计器添加菜单条,所以首先执行设计器代码,因此菜单条始终位于底部。

我认为走出困境的方法有以下三种:

第一种方法

正如 Hans Passant 指出的那样,让事情按正确顺序排列的最简单方法就是简单地调用

stereoBar.BringToFront();

在您将它添加到表单的控件之后。

第二种方法

要避免这种情况,您还可以以编程方式添加菜单条,并在添加工具条之后执行此操作

第三种方法

另一种方法可能是通过设计器将另一个容器添加到表单(例如面板或组框),该容器也停靠在顶部,它只是用作您添加工具条的占位符(因此您不添加直接到表格)

关于c# toolstrip 不在 menustrip 下停靠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22350671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com