问题标签 [toolstripdropdown]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3552 浏览

c# - 如何在固定大小的 ToolStripDropDown 中滚动

我正在使用一个ToolStripDropDown控件来实现自定义 ComboBox 类控件的下拉部分。为了在视觉上吸引人,我MaximumSize在下拉列表中强加 a 并手动指定其中每个的宽度ToolStripButton- 结果是一个弹出窗口,它与激活它的控件的宽度相同,并且在高度的高度上有一个上限的下拉部分。

示例(简化):

如您所见,应用了对弹出窗口大小的约束,但是不显示向上/向下滚动按钮,似乎没有办法让它们出现。似乎没有ToolStripDropDown关于滚动偏移的任何方法或属性或将特定项目滚动到视图中的机制(例如EnsureVisible()on ListViewItem)。

那么,我怎样才能让下拉菜单滚动?任何方法都足够了,无论是滚动条、滚动按钮还是鼠标滚轮。

(顺便说一句,我已经尝试过很多次使用Form下拉部分来制作类似的控件 - 尽管尝试了许多解决方案来防止弹出窗口在单击其控件时窃取焦点或获得焦点,但这似乎是一个死胡同。我有也排除了使用ToolStripControlHost,其托管控件仍然可以将焦点从打开它的表单上移开。)

0 投票
2 回答
1098 浏览

c# - ToolStripDropDownButton,如何删除所有 DropDownItems?

如果 ToolStripDropDownButton 的属性是只读的,如何从 ToolStripDropDownButton 中删除所有 DropDownItems?

0 投票
1 回答
1038 浏览

c# - 如何在 C# 中打印所有菜单项的名称?

我是编程新手。我需要获取所有菜单项(ToolStripMenuItems)的列表,包括下拉菜单项。我找到了一些代码,但它只列出了主菜单项,没有下拉菜单项。你能给我一个合适的代码来列出所有菜单项吗?

0 投票
2 回答
4212 浏览

c# - 关于 toolStripDropDownButton

我有一个表格。我已经在表单中使用拖放添加了剥离按钮。我如何(在程序中)创建和填充 toolStripMenu 项?我的菜单可能包含不同的元素......具有不同的名称。

0 投票
1 回答
2050 浏览

winforms - ToolStripSplitButton 行为覆盖

我试图了解如果您使用此构造函数,我必须做什么来覆盖ToolStripDropDown控件的行为:System.Windows.Forms

那么下拉菜单只会显示我是否按住鼠标并且如果我使用这个

然后当我点击时下拉将显示。

我很清楚,提供单击事件处理程序非常明确地说“嘿,当我单击时,执行这个”,但在 a 的情况下,ToolStripSplitButton由于控件本身的拆分性质,区别有点模糊。

所以,我喜欢做的是a)当用户点击按钮部分时ToolStripSplitButton,点击事件处理程序正常执行b)当我在箭头部分单击或按下鼠标时,ToolStripSplitButton下拉显示

是否有任何 OOB 属性/方法可以做到这一点?

谢谢

0 投票
1 回答
1768 浏览

c# - 所有者绘制的 ToolStripDropDownButton

我正在为ToolStripDropDown控件编写一些自定义行为。我还想修改ToolStripDropDownButton自身以显示彩色形状。

我看到我可以处理这个Paint事件并画出我喜欢的任何东西。但是,在我绘制形状之前,有什么方法可以让按钮绘制默认背景?很难让背景完全正确,尤其是对于 .NET 和 Windows 的未来版本。

在普通的 Windows 中,我可以在绘制代码之前或之后调用默认的 proc 处理程序。我没有看到在 .NET 中实现这一目标的任何方法。或者也许有一种方法可以告诉按钮只绘制背景?

0 投票
3 回答
6187 浏览

c# - 如何对 ToolStripItemCollection 中的项目进行排序?

我通过以下方式将字符串(项目)动态添加到 ToolStripItemCollection:

所以项目不是一次性添加的,而是在整个程序会话期间根据外部触发逐一添加的。每次添加新项目时,我都想对下拉列表进行排序。我有什么选择来实现这一目标?

0 投票
1 回答
899 浏览

c# - C#:ToolStripDropDown 不处理/销毁句柄

我正在使用ToolStripDropDown来显示一个选择弹出窗口。

包含一些带有运行线程的ToolStripDropDown自定义控件。线程以 OnHandleDestroyed 事件结束,但由于某种原因,ToolStripDropDown在关闭后不会释放/销毁它的句柄。

处理ToolStripDropDown关闭事件给了我一个例外,因为任何东西仍然可以访问 ToolStripDropDown。

我如何知道自定义控件是否仍在使用或不结束线程?

自定义控制:

ToolStripDropDown-控制:

编辑:

经过同样的更多测试后,我无法处理toolstripdropdown。作为一种解决方法,我只是在关闭工具条下拉菜单时破坏手柄。

0 投票
2 回答
1304 浏览

c# - ToolStripDropDown 编辑文本框时鼠标光标消失

我有一个带有 RichTextBox 的用户控件和两个按钮。我试图在 ToolStripDropDown 上单击 ToolStripButton 来证明这一点。我正在使用 ToolStripControlHost 将我的控件放在 ToolStripDrowDown 上。当我在表单工具栏上单击 ToolStripButton 时,我会在某个位置显示下拉菜单并将焦点放在 ToolStripControlHost 控件上。鼠标指针停留在 ToolStripButton 上方,光标位于 RichTextBox。但是当我开始编辑 RichTextBox 时,鼠标指针消失了,只有当它超出矩形时我才能看到它。我该如何解决?

这是我的代码:

0 投票
0 回答
933 浏览

c# - ToolStripControlHost 始终位于顶部(C# 窗口窗体)

我构建了一个表单,在这个表单中我构建了一个 ToolStripControlHost:

我的问题是,当我移动到其他窗口时,控件仍然是顶部窗口。我希望它属于表单(意思是当我最小化表单时,控件也会被最小化等等)。感谢您的帮助。