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) 
{
	//如果解析成功,这里添加选项关联操作
	
}
相关推荐
何似在人间5753 分钟前
Go语言快速入门教程(JAVA转go)——1 概述
java·开发语言·golang
边疆.14 分钟前
【C++】继承详解
开发语言·c++·继承
一个帅气昵称啊1 小时前
C# .NET EFCore 性能优化
性能优化·c#·.net
lxh01131 小时前
LRU 缓存
开发语言·前端·javascript
ArabySide1 小时前
【C#】理解.NET内存机制:堆、栈与装箱拆箱的底层逻辑及优化技巧
c#
空山新雨(大队长)1 小时前
Java第五课:输入输出
java·开发语言
wow_DG2 小时前
【Vue2 ✨】Vue2 入门之旅 · 进阶篇(二):虚拟 DOM 与 Diff 算法
开发语言·javascript·vue.js·算法·前端框架
sali-tec3 小时前
C# 基于halcon的视觉工作流-章32-线线测量
开发语言·人工智能·算法·计算机视觉·c#
little_xianzhong3 小时前
Java 日期字符串万能解析工具类(支持多种日期格式智能转换)
java·开发语言
Dersun3 小时前
python学习进阶之异常和文件操作(三)
开发语言·python·学习·json