C# 根据用户选择显示不同的 UI 元素

Posted

技术标签:

【中文标题】C# 根据用户选择显示不同的 UI 元素【英文标题】:C# Displaying different UI elements depending on user choice 【发布时间】:2021-09-16 06:09:23 【问题描述】:

我正在使用 Visual Studio 学习 C# GUI 开发。我遇到了一个困境。所以我有一个基本的用户界面,用户可以从大约 30 个单选按钮的列表中进行选择。根据单击按钮时选择的单选按钮 -> 我想显示 2 个下拉菜单,其中包含特定值。

因此,如果您想象总共将有 60 个下拉菜单,但根据单击的单选按钮,只有 2 个是可见的。

我对此进行了一些研究 - 我最好的方法是什么?我想到了以下事情,没有太多代码:

在主窗体中创建所有下拉列表,并将每一对放在一个组框中。然后根据单击的单选按钮,在该特定组框上将 Visible 属性更改为 true/false。 (因此在主窗体中将有 30 多个组框堆叠在一起,但可见性设置为 false)。这是一个问题吗?如果有这么多元素堆叠在一起,它会使主要形式变得迟缓/缓慢吗?这种方式有什么缺陷吗?

我认为我可以做到的另一种方法是在我的表单中只有 2-3 个下拉菜单,并动态更新同一下拉菜单中的可选值,以便动态提供值/选项并与单击的单选按钮相关。这样一来,主窗体中总共只会有 2-3 个下拉菜单,但它们的值会不断实时变化。

我不确定是否有比我经验丰富的人可以指出答案或更好的方法?

【问题讨论】:

只需构建一个将 RadioButton 映射到选项列表的类,并仅使用两个显示相关值列表的控件。 第一个选项是所有部门的噩梦。 【参考方案1】:

当然你应该动态地做,更新或编辑你的代码时会容易得多。

【讨论】:

嗨,我主要是问两件事,哪一件更适合性能/“更轻”,它是“正确”的做法 是的,我推荐Dynamic Option,会轻很多,性能取决于收集数据源的工作量,但一般不会影响性能 一般来说,更少的代码通常意味着更高的性能

以上是关于C# 根据用户选择显示不同的 UI 元素的主要内容,如果未能解决你的问题,请参考以下文章

jquery ui 可选复选框

根据vue js中的选项选择在不同的div中显示数据

使用元素 ui 选择显示占位符值

C# CaliburnMicro:如何根据在数据网格中选择的项目自动在组合框中显示值?

如何根据复杂用户的选择显示绑定的 NSManagedObject 的属性?

如何根据用户选择在 CollectionView 标题下方显示不同的单元格?