C# ComboBox 和 枚举类型(Enum)相互关联

C# ComboBox 和 枚举类型(Enum)相互关联

目的

在C# Winform面板上的ComboBox选择项,由程序填写某个Enum的各个枚举项目。

在运行中读取ComboBox的选择项,返回Enum数值。

非编程方法

低阶做法可以在winform设计窗口手动填写,但是不会自动跟Enum改变而变化。 读取ComboBox选项也是index,要映射到Enum可以用switch语句,但容易对应关系搞错。

正解

对于定义好的Enum MyEnum,面板comboBox comboBoxMyChoices,代码如下:

csharp 复制代码
public enum MyEnum
{
        Unknown = 0,
        Jogging = 1,
        Swimming = 2
}
//初始化comboBox选项为 Unknown, Jogging, Swimming
comboBoxMyChoices.DataSource = Enum.GetNames(typeof(MyEnum));

//设置comboBox选项为某个myEnum值,例如Swimming
comboBoxMyChoices.SelectedItem = Enum.GetName(typeof(MyEnum), MyEnum.Swimming);

//读取comboBox选项给一个enum变量guiSelection
MyEnum guiSelection;
//根据面板选项字符解析为枚举变量
if(Enum.TryParse(comboBoxMyChoices.SelectedItem.ToString(), out guiSelection) 
{
	//如果解析成功,这里添加选项关联操作
	
}
相关推荐
tryCbest9 小时前
Python之Flask开发框架(第一篇) — 从安装到第一个应用
开发语言·python·flask
q5431470879 小时前
Java进阶总结——集合
java·开发语言
啥咕啦呛9 小时前
java打卡学习5:java基础学习
java·开发语言·学习
zhangzeyuaaa9 小时前
Python getter/setter 正确用法详解
开发语言·python
南境十里·墨染春水9 小时前
C++ 笔记 深赋值 浅赋值(面向对象)
开发语言·jvm·c++·笔记
Lyyaoo.9 小时前
【JAVA基础面经】JAVA的面向对象特性
java·开发语言·windows
小温冲冲9 小时前
Qt WindowContainer 完整实战示例:QWidget 嵌入 QML
开发语言·数据库·qt
MyBFuture10 小时前
Halcon条形码与二维码识别全攻略
开发语言·人工智能·halcon·机器视觉
CSharp精选营10 小时前
Dispose 不释放?C# 资源泄漏的 3 种隐蔽场景排查
c#·资源泄漏
AI+程序员在路上10 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件