C#(winform)自定义ListItem类方便ComboBox操作
public class ListItem
{
/// <summary>
/// Key
/// </summary>
public string Key { get; set; }
/// <summary>
/// Value
/// </summary>
public object Value { get; set; }
/// <summary>
/// 构造函数
/// </summary>
public ListItem(string strKey, string strValue)
{
this.Key = strKey;
this.Value = strValue;
}
/// <summary>
/// 重写的ToString
/// </summary>
public override string ToString()
{
return this.Key;
}
/// <summary>
/// 根据ListItem中的Value找到特定的ListItem(ComboBox的Item设置为ListItem时有效)
/// </summary>
/// <param name="cmb">要查找的ComboBox</param>
/// <param name="strValue">要查找ListItem的Value</param>
/// <returns>返回ComboBox中符合条件的第一个ListItem,否则返回null</returns>
public static ListItem FindByValue(ComboBox cmb, string strValue)
{
foreach (ListItem li in cmb.Items)
{
if (li.Value.ToString() == strValue)
{
return li;
}
}
return null;
}
/// <summary>
/// 根据ListItem中的Key找到特定的ListItem(ComboBox的Item设置为ListItem时有效)
/// </summary>
/// <param name="cmb">要查找的ComboBox</param>
/// <param name="strValue">要查找ListItem的Key</param>
/// <returns>返回ComboBox中符合条件的第一个ListItem,否则返回null</returns>
public static ListItem FindByKey(ComboBox cmb, string strText)
{
foreach (ListItem li in cmb.Items)
{
if (li.Key == strText)
{
return li;
}
}
return null;
}
}
//添加项:
cmbTest.Items.Add(new ListItem("key1", "value1"));
cmbTest.Items.Add(new ListItem("key2", "value2"));
//设置选中项:
cmbTest.SelectedIndex = 0; //根据索引
cmbTest.SelectedItem = ListItem.FindByValue(cmbTest, "value1"); //根据Key获取并设置选中项
cmbTest.SelectedItem = ListItem.FindByText(cmbTest, "key1"); //根据Value获取并设置选中项
//获取选中项:
ListItem li = (ListItem)cmbTest.SelectedItem;
ListItem li1 = ListItem.FindByValue(cmbTest, "value1"); //根据Key获取并设置选中项
ListItem li2 = ListItem.FindByText(cmbTest, "key1"); //根据Value获取并设置选中项
string strKey = li.Key; //获取选中项Key
string strValue = li.Value; //获取选中项Value
C#(winform)自定义ListItem类方便ComboBox操作的更多相关文章
- c#(winform)中自定义ListItem类方便ComboBox添加Item项
1.定义ListItem类 public class ListItem { private string _key = string.Empty; private string _value = st ...
- 自定义的类实现copy操作
1.自定义类实现copy操作 让类遵守NSCopying协议 实现 copyWithZone:方法,在该方法中返回一个对象的副本即可. 在copyWithZone方法中,创建一个新的对象,并设置该对象 ...
- kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...
- Winform自定义窗体样式,实现标题栏可灵活自定义
最近在编写C/S结构应用程序时,感觉窗体的标题栏样式太死板了,标题文字不能更改大小.颜色.字体等,按钮不能隐藏等问题,在网上也查找了许多相关的资料,没有找到合适的解决方案,发现许多人也在寻求这个问题, ...
- 如何给ActiveX控件添加“事件”“属性”“标准事件”“自定义事件”等一些相关操作
上一篇小编带大家熟悉了一下ActiveX的建立以及相关的概念,(http://blog.csdn.net/u014028070/article/details/38424611) 本文介绍下如何给控件 ...
- [转]掌握 ASP.NET 之路:自定义实体类简介 --自定义实体类和DataSet的比较
转自: http://www.microsoft.com/china/msdn/library/webservices/asp.net/CustEntCls.mspx?mfr=true 发布日期 : ...
- 通过SPList Definition自定义ListItem打开编辑详细页面
在SharePoint中对列表SPList的操作里,常常希望当增加一个条目后还希望关联做一些其它的操作 而SharePoint自身提供的Item操作页面却没有那么灵活:所以通常情况下,我们专门为其提供 ...
- JAVA之旅(二十六)——装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片
JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义re ...
- 【2017-05-02】winform弹出警告框选择性操作、记事本制作、对话框控件和输入输出流
一.winform弹出警告框选择性操作 MessageBox.Show()返回一个枚举类值(第一个参数为弹出窗口显示的内容,第二个参数为弹出窗口的标题,第三个参数为弹出窗口包含的按钮) 先新建一个变量 ...
- 帝国cms调用栏目自定义字段(栏目简介)如何操作
开源的cms就像一个操作系统,可以满足大部分人的需求,如果你想增加一些特殊的功能,那就二次开发呗,就像APP一样.帝国cms默认的栏目是没有调用栏目自定义字段的,我们可以增加一些概述类的文字,让读者对 ...
随机推荐
- 【Unity3D】伽马校正
1 伽马相关概念 1.1 人眼对亮度变化的感知 人眼对亮度变化的感知不是线性的,如下图,人眼对亮区的亮度变化不太敏感,对暗区的亮度变化较敏感.另外,我们可以想象一下,在一个黑暗的房间里,由 1 根 ...
- BUU PWN RIP1 RET2CODE WRITEUP
1.下载附件后,运行是一个输入程序,IDA分析main函数,gets可溢出. F5伪代码如下: int __cdecl main(int argc, const char **argv, const ...
- IDA 反汇编 explorer
之前写过一篇关于 IDA 在无 dmp 文件下如何定位到崩溃点的文章,由于其中涉及到公司项目,就仅限自己看了 正好今天看到一篇关于火绒软件误杀 explorer 的文章,并且有相关的复现过程 文章已经 ...
- redis7源码分析:redis 启动流程
1. redis 由 server.c 的main函数启动 int main(int argc, char **argv) { ... // 上面的部分为读取配置和启动命令参数解析,看到这一行下面为启 ...
- python开发接口时,使用jsonschema模块对数据进行校验
import jsonschema schema = { "type": "object", # 先声明每个键都是对象 "properties&quo ...
- 问题:django.template.exceptions.TemplateSyntaxError: 'staticfiles' is not a registered tag library. Must be one of: admin_list admin_modify admin_urls cache i18n l10n log rest_framework static tz
django使用swagger自动生成API文档时,报错 解决方法 在settings.py里面配置一下以下代码 'libraries': { 'staticfiles': 'django.templ ...
- iOS的Runtime知识点繁杂难啃,真的理解它的思想,你就豁然开朗了
一.Runtime 1.概念: 概念:Runtime是Objective-c语言动态的核心,即运行时.在面向对象的基础上增加了动态运行,达到很多在编译时确定方法推迟到了运行时,从而达到动态修改.确定. ...
- 在Vue中使用Canvas绘制背景
好家伙, 在vue中使用canvas绘制与在html中使用canvas绘制大致相同, 但又有所区别 法一(无图片资源): vue中canvas的使用 - 掘金 (juejin.cn) 找到canca ...
- SQL之 数据库表字段约束与索引
第三范式 MySQL四种字段约束 主键约束 非空约束 唯一约束 创建索引 添加和删除索引
- php本地上传文件类
/** * Class UploadFile * @author fengzi */ class UploadFile { public $error = array(); //上传前的error信息 ...