开发中需要根据下拉框的选择处理一些业务逻辑,使用ID值或Text值都不利于代码维护,所以可以写个扩展方法绑定到枚举上。

 public static class Extensions
{ /// <summary>
/// 绑定ComboBoxEx数据源到枚举类型
/// </summary>
/// <param name="cmb"></param>
/// <param name="enumType"></param>
/// <param name="selectIndex"></param>
public static void BindToEnumName(this ComboBox cmb, Type enumType, int selectIndex = 0)
{
cmb.DataSource = Enum.GetNames(enumType);
} /// <summary>
/// 获取选择项
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="cmb"></param>
/// <returns></returns>
public static T GetSelectedItemToEnum<T>(this ComboBox cmb)
{
return (T)Enum.Parse(typeof(T), cmb.SelectedItem.ToString(), false);
} /// <summary>
/// 设置选定项
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="cmb"></param>
/// <param name="t"></param>
public static void SetSelectedItemToEnum<T>(this ComboBox cmb, T t)
{
cmb.SelectedItem = t.ToString();
} }

调用方法:

        private void button1_Click(object sender, EventArgs e)
{
this.comboBox1.BindToEnumName(typeof(TypeEnum));
} private void button2_Click(object sender, EventArgs e)
{
var type = this.comboBox1.GetSelectedItemToEnum<TypeEnum>();
this.textBox1.Text = type.ToString() + ":" + (int)type;
} private void button3_Click(object sender, EventArgs e)
{
this.comboBox1.SetSelectedItemToEnum(this.textBox2.Text);
} private void button4_Click(object sender, EventArgs e)
{
this.comboBox1.SetSelectedItemToEnum<TypeEnum>((TypeEnum)(int.Parse(this.textBox3.Text)));
} public enum TypeEnum
{
类型1 = 1,
类型2 = 2
}

winform开发中绑定combox到枚举的更多相关文章

  1. Winform开发中如何将数据库字段绑定到ComboBox控件

    最近开始自己动手写一个财务分析软件,由于自己也是刚学.Net不久,所以自己写的的时候遇到了很多问题,希望通过博客把一些印象深刻的问题记录下来. Winform开发中如何将数据库字段绑定到ComboBo ...

  2. 在Winform开发中使用日程控件XtraScheduler(2)--深入理解数据的存储

    在上篇随笔<在Winform开发中使用日程控件XtraScheduler>中介绍了DevExpress的XtraScheduler日程控件的各种使用知识点,对于我们来说,日程控件不陌生,如 ...

  3. 在Winform开发中使用Grid++报表

    之前一直使用各种报表工具,如RDLC.DevExpress套件的XtraReport报表,在之前一些随笔也有介绍,最近接触锐浪的Grid++报表,做了一些测试例子和辅助类来处理报表内容,觉得还是很不错 ...

  4. WinForm开发中通用附件管理控件设计开发参考

    1.引言 在WinForm开发中,文件附件的管理几乎在任何一个应用上都会存在,是一个非常通用集中的公共模块.我们日常记录会伴随着有图片.文档等附件形式来展现,如果为每个业务对象都做一个附件管理,或者每 ...

  5. 在Winform开发中,我们使用的几种下拉列表展示字典数据的方式

    在Winform开发中中,我们为了方便客户选择,往往使用系统的字典数据选择,毕竟选择总比输入来的快捷.统一,一般我们都会简单封装一下,以便方便对控件的字典值进行展示处理,本篇随笔介绍DevExpres ...

  6. 在Winform开发中使用FastReport创建报表

    FastReport.Net是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2005到2015, ...

  7. Winform开发中的困境及解决方案

    在我们开发各种应用的时候,都会碰到很多不同的问题,这些问题涉及架构.模块组合.界面处理.共同部分抽象等方面,我们这里以Winform开发为例,从系统模块化.界面组件选择.业务模块场景划分.界面基类和辅 ...

  8. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

    本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的 ...

  9. 在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker

    在Winform开发中有时候我们为了不影响主UI线程的处理,以前我们使用后台线程BackgroundWorker来处理一些任务操作,不过随着异步处理提供的便利性,我们可以使用Async-Awati异步 ...

随机推荐

  1. php工具 phpstorm 的快捷键 的使用(待添加

    参考网址:http://www.cnblogs.com/jikey/p/3491798.html 1. ctrl+tab 键,可以切换各个选项卡 页面 2. shift+enter 键,无论光标在本行 ...

  2. read 隐藏用户输入

    有时会需要脚本用户进行输入,但不希望输入的数据显示在监视器上,典型的例子就是输入密码,当然还有很多其它类型的数据需要隐藏.-s选项就能够使read命令中输入的数据不现实在监视器上(实际上,数据是显示的 ...

  3. maven使用入门(pom)

    mvn clean complie mvn clean test mvn clean package mvn clean install(该任务将该项目输出的jar安装到了Maven本地仓库中) 各个 ...

  4. SAP供应商和客户的创建

    进来遇到一个创建供应商的需求,由于在系统中关于供应商和客户的创建比较特殊,且没有相关函数进行创建, 找到一个类和方法来创建,类名:VMD_EI_API  方法名:MAINTAIN_DIRECT_INP ...

  5. poj1927Area in Triangle

    链接 物理渣只能搜题解了.. 分三种情况 1.len>=a+b+c 2.len<内切圆半径 圆的面积是最大的 -->以len为周长的圆 3.看这篇http://blog.sina.c ...

  6. Android 让输入框输入指定字符的办法

    让输入框输入指定字符的办法 有一个需求 让输入密码的时候只能输入数字字母可见字符 不能输入中文 之前还以为要写代码 还来发现有一个属性可以直接实现 <EditText android:layou ...

  7. Android 自定义列表指示器

    在联系人界面 可以看到这种界面 手指快速滑动右边滑动条时 可以显示相应的字母图标 android里提供了android.widget.SectionIndexer这个接口去实现该效果 可是只能显示字母 ...

  8. iOS开发之 Xcode 6 创建一个Empty Application

    参考链接http://jingyan.baidu.com/article/2a138328bd73f2074b134f6d.html Xcode 6 正式版如何创建一个Empty Applicatio ...

  9. SenchaTouch介绍和Sencha Architect介绍以及安装

    一.SenchaTouch介绍 Sencha Touch框架是世界上第一个基于HTML 5的Mobile App框架. 在Sencha Touch这个名词中,包括了两个组成部分,其中Sencha的前身 ...

  10. Eclipse中导入外部jar包(zhuan)

    http://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html ************************************* ...