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) 
{
	//如果解析成功,这里添加选项关联操作
	
}
相关推荐
机器视觉知识推荐、就业指导1 小时前
面试问题详解五:Qt 信号与槽的动态管理
开发语言·qt
四维碎片7 小时前
【Qt】线程池与全局信号实现异步协作
开发语言·qt·ui·visual studio
IT码农-爱吃辣条7 小时前
Three.js 初级教程大全
开发语言·javascript·three.js
☺����8 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
染翰8 小时前
lua入门以及在Redis中的应用
开发语言·redis·lua
王者鳜錸8 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
妮妮学代码9 小时前
c#:TCP服务端管理类
java·tcp/ip·c#
兔老大RabbitMQ9 小时前
git pull origin master失败
java·开发语言·git
tt5555555555559 小时前
C/C++嵌入式笔试核心考点精解
c语言·开发语言·c++
xiao助阵9 小时前
python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换
开发语言·python