- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用表单设计器创建的菜单条。然后我想以编程方式在菜单条下添加一个工具条工具栏。原因是这个工具栏是我作为插件添加到主应用程序的一组工具。因此,当加载插件时,我创建了工具栏。
当我使用窗体设计器手动将工具条添加到窗体时,工具条正确定位在菜单条下方。但是,当我以编程方式添加它时,它会捕捉到表单的最顶部,在菜单条上方。这是我用来以编程方式添加工具条的代码:
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/
我正在使用 Visual Studio 2019 并创建了一个 windows 窗体应用程序项目。在我放下 MenuStrip 时的表单中,它没有向我显示用于创建菜单的 Type 框。我搜索了互联网,
有没有一种简单的方法可以增加 WinForms MenuStrip 中菜单项文本与其快捷键之间的间距?如下图,即使是 VS 生成的默认模板看起来也很糟糕,文本“打印预览”超出了其他项目的快捷键: 我正
我正在创建一个带有选项卡的网络浏览器。要输入 URL,我尝试将 MenuStrip 及其 ToolStripMenuItem 设置为文本框。我正在动态创建所有控件,我有 2 个问题。 1).如何从代码
根据此处关于 SO 的许多问题,使表单背景透明的最佳方法是将其设置为相当未使用的颜色(如洋红色),然后将表单的 TransparencyKey 设置为那种颜色。 this.BackColor = Co
我有一个已添加到表单的 MenuStrip,在其中的一个下拉菜单中,我有一个文本框。当我在文本框上按下回车键时,我想要运行一个函数,然后关闭下拉菜单。我知道如何完成输入部分,但我不知道如何关闭 Men
好的,我有一个名为 Form1.menuStrip1 的 MenuStrip。 Form1.menuStrip1 有两个水平项目,分别称为“菜单”和“列表”。我想要做的是向列表菜单添加一个新的子菜单项
我想在 menustrip 和 menuStrip 右边的窗体之间留一个空隙。我使用了 autosize= false 和新的尺寸属性,menustrip 的高度改变了但宽度没有改变。 Menustr
我想在 menustrip 和 menuStrip 右边的窗体之间留一个空隙。我使用了 autosize= false 和新的尺寸属性,menustrip 的高度改变了但宽度没有改变。 Menustr
当我从 Menu-strip 控件的下拉列表中选择任何选项时,其 Click 事件中的代码被触发并且下拉列表折叠。但我希望下拉菜单必须保持打开状态。 请帮忙 如果我在单击此菜单中的项目时打开一个对话框
我需要从子窗口更改主窗口(mdi 容器)的 menuStrip 项目文本, 像这样: File -Login 到 File -Logout 最佳答案 在主窗口添加这些: public static M
当主窗体的 isMidContaine = true 时,如何禁用 MenuStrip 的 MaximizeBox。当我在某些解决方案中阅读时,我希望禁用它以不隐藏表单的 ControlBox。
是否可以在不通过表单添加实例的情况下动态创建 MenuStrip? 我已经完成了.. //Create menu MenuStrip menu = new MenuStrip(); menu.name
例如我有这个菜单点击事件: private void testToolStripMenuItem_Click(object sender, EventArgs e) {
我需要检测何时打开和关闭 MenuStrip(不是上下文菜单)。 Enter 和 Leave 事件似乎不起作用。 为什么我需要它:我使用带有"file"、“编辑”、“关于”等选项的 MenuStrip
我正在开发一个 VB Winforms 项目(尽管我对 C# 解决方案也很满意)并进行了以下设置: 我在窗体上有一个 ContextMenuStrip,msCreateReports 我在表单顶部有一
我想获取我的 MenuStrip 的所有 SubItems,因此我可以一次更改它们。 我正在尝试以下操作,但它们不起作用: foreach (ToolStripMenuItem toolItem in
这个问题在这里已经有了答案: How to change menu hover color (4 个答案) 关闭 9 年前。 我在我的应用程序中添加了一个 MenuStrip,并在 Render M
我阅读了一些关于人们如何自定义 MenuStrip 的颜色和渐变的其他文章。 我想要做的是删除渐变,使 MenuStrip 与表单的其余部分颜色相同,对我来说,这是创建新 WinForms 项目时使用
你知道如何去除 MenuStri 中子菜单的边距(可能是图像和左右复选框的边距)吗?在 MSDN article解释了如何从上下文菜单中删除它。据记载,我应该在 MenuStrip 中以相同的方式执行
我似乎找不到在 MenuStrip 中添加水平分隔符的方法。 Visual Studio 提示无法将 ToolStropSeparator 添加到 MenuStrip。 知道我该怎么做吗? 最佳答案
我是一名优秀的程序员,十分优秀!