Windows 窗体中的多级组合框
Posted
技术标签:
【中文标题】Windows 窗体中的多级组合框【英文标题】:Multi-level Combo Box in Windows Forms 【发布时间】:2015-09-12 07:29:45 【问题描述】:我想在我的 WinForms 应用程序中使用组合框从众多选项中只选择一个。这个选择会影响整个应用程序并且非常重要,所以我不想为此使用菜单条。因此,组合框是显而易见的选择。
但是有一个问题,我有这些选项的两级层次结构,我需要从第二级选择和显示选项。简而言之,我想获得这样的东西:
有没有办法使用 WinForms 工具轻松完成此操作或类似操作?或者一些简单的方法来实现这个?我之前没有真正在 WinForms 中实现任何可视化控件,我不想浪费大量时间来学习如何实现。感谢您的任何回答。
【问题讨论】:
你对MenuStrip
有什么反对意见?从你写的内容和你展示的图片来看,它似乎比ComboBox
更合适。
我可能会使用两个组合框来完成您想要做的事情。在框的选择更改时,您将适当地用选择填充第二个框。否则我认为您需要创建自己的控件或查看 WPF。 ***.com/questions/722700/…
@adv12 出于与 GUI 设计相关的原因,我不想为此使用菜单条。这是可以接受的(我们称之为 B 计划 :-))但我更愿意看到类似组合框的东西。
@DoomVroom 我考虑了两个组合框,但这不是一个优雅的解决方案(即使使用菜单条更优雅,但我也想避免这种情况)。
如果不需要Winforms控件,可以使用第三方创建的控件,或者使用winforms中的WPF控件
【参考方案1】:
对于仍然需要此功能的任何人,您可以使用带有菜单项的 ToolStrip 来表示多级组合框。
将点击监听器附加到 ToolStripMenuItems 并使用 OwnerItem 读取父级的文本。
【讨论】:
以上是关于Windows 窗体中的多级组合框的主要内容,如果未能解决你的问题,请参考以下文章
当我手动更改 SelectedValueChanged 事件中的文本时,Windows 窗体组合框文本不会更新
Microsoft Access - 子窗体中的组合框基于主窗体组合框
尝试使用多线程将大型数据集填充到组合框中时,Windows 窗体冻结?
在 Windows 窗体应用程序 C# 中以编辑模式将值绑定到组合框
当应用程序失去焦点时,Windows 窗体组合框会触发 SelectionChangeCommitted、SelectedValueChanged 和 SelectedIndexChanged 事件