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) 
{
	//如果解析成功,这里添加选项关联操作
	
}
相关推荐
百锦再2 小时前
详细解析 .NET 依赖注入的三种生命周期模式
java·开发语言·.net·di·注入·模式·依赖
风吹落叶花飘荡2 小时前
2025 Next.js项目提前编译并在服务器
服务器·开发语言·javascript
程序猿多布3 小时前
C# 值拷贝、引用拷贝、浅拷贝、深拷贝
c#
失败又激情的man3 小时前
python之requests库解析
开发语言·爬虫·python
专注VB编程开发20年3 小时前
常见 HTTP 方法的成功状态码200,204,202,201
开发语言·网络协议·tcp/ip·http
有没有没有重复的名字3 小时前
线程安全的单例模式与读者写者问题
java·开发语言·单例模式
阿蒙Amon4 小时前
C#随机数生成全面详解:从基础到高级应用
服务器·网络·c#
开开心心_Every4 小时前
便捷的电脑自动关机辅助工具
开发语言·人工智能·pdf·c#·电脑·音视频·sublime text
霖005 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
上单带刀不带妹5 小时前
JavaScript中的Request详解:掌握Fetch API与XMLHttpRequest
开发语言·前端·javascript·ecmascript