当前位置:首页 > 技术实录 > 正文内容

ComboBox控件DropDownList样式item添加

心光日记2013-01-21 13:50:43技术实录126

C#的下拉列表框,有三种样式,我们常用的就是DropDownList样式,如图:6cc07710xd3c611ef1349&690_看图王.jpg

但是,我在昨天使用的时候,发现一个问题。此样式的ComboBox在添加项,也就是填充下拉列表的内容的时候,有两种方法,一种是用DataTable绑定数据的形式,这种形式是官方推荐的。但是有时不想构造 DataTable ,或者对它不熟悉时,依然想通过items.add()方法来添加内容。但是我们却无法控制添加内容的Name和Value,也就是列表框内显示内容,以及它内部实际的值,添加进去的Name、Value值是一样的。
  经过查阅,想到了KeyValuePair,这不是一个键值对嘛,用在这儿刚合适啊!结果又出现了问题,在列表的的现实中,不仅显示了Key,还显示了Value,形成这种样式[Key,Value],显然这是不符合设计要求的。继续查阅,发现有一种方法,就是创建一个自定义类,来完成这一功能,但是我发现了一个奇怪现象,查阅的代码里面都重写了ToString()方法,很纳闷,为什么要重写ToString()呢?!
  在好奇之下,于是查看了KeyValuePair类的代码,终于被我发现了原因,原来其内部也对ToString()进行了重写,ToString()方法体的代码,导致了最后显示在 下拉列表 中的内容是Key+Value,原来是这个原因。既然这样,那我可以继承KeyValuePair,然后重写ToString()让它只返回Key,这样显示在 下拉列表 中的内筒就不会是Key+Value了。结果依然失败,原来KeyValuePair不是一个类,而是一个结构体,无法作为基类被继承。

  到这里,彻底没法了,只能自定义一个类了。直接复制KeyValuePair的源代码,修改了一下ToString()方法,结果大功告成。搞来搞去,最后还是自定义了一个类,但也明白了一些东西,虽然绕了一大圈!
  
  自定义类代码如下:
  public class KeyValuePairCY
    {
       private TKey key;
       private TValue value;
     
       public KeyValuePairCY(TKey key, TValue value)
       {
           this.key = key;
           this.value = value;
       }
       public TKey Key
       {
           get
           {
              return this.key;
           }
       }
     
       public TValue Value
       {
           get
           {
              return this.value;
           }
       }
       //ToString()方法由控件调用,显示内容到界面里
       public override string ToString()
       {
          StringBuilder sb = new StringBuilder();
           if (this.Key != null)
           {
             sb.Append(this.Key.ToString());
           }
           return sb.ToString();
       }
    }

  

有不理解朋友,可以留言评论!平日在线比较多,可以实时交流!

扫描二维码推送至手机访问。

版权声明:本文由心光日记发布,如需转载请注明出处。

本文链接:https://www.mindlight.cn/post/170.html

标签: 新浪博客
分享给朋友:

“ComboBox控件DropDownList样式item添加” 的相关文章

VB脚本刷百度空间访问量

  大家有没有为少得可怜的访问量感到不爽呢?或者为自己辛辛苦苦写的心血文章显示的浏览数总是“零”觉得无奈呢?我相信是有的。所以,今天我就教大家巧用VB脚本刷空间访问量,全自动。原理就是自动打开页面,产生访问量,然后关闭,并重复操作,且不影响当前正在做的任何工作。要是哪天访问少了,起码小小安慰一下受伤...

彩虹(原51挂挂)评测

  超大的网盘和方便的网盘操作是最大的优点,而可更改的数字账号在有QQ铺垫的当前社会极具吸引性。  这是一个巧合,今天在“360软件管家”里面无意间发现了一个软件,叫“彩虹”,突然使我响起了前一阵子和 腾讯 闹得很凶的“彩虹显IP”。下意识间点开了简介,心里想着这个“彩虹”和“彩虹显IP”有关系吗?...

第一次封包分析

  今天中午宿舍都去上网了,再加上最近在小研究WG方面的知识、顺便留意一下万象2008的免费,所以实在是忍不住了,然后就来了。  首先,一不小心,又让我征服了一个Netbar,而且极具里程碑式,因为校园附近网吧所有的计费系统那个都是这个。  第二,今天第一次真正的分析了数据包,也许算不上分析,在高人...

序言

  从今天起,将正式开始学习WG方面知识。  为了和大家共同进步,方便大家学习,所以会在每次学习之后详略得当地记录下过程、细节,并在空间(http://hi.baidu.com/_炎_炎)WG/XF分类同步更新,以及“WG研究院”(http://hack.gameres.com/showforum....

第一章_第一节_外挂分类

  本章节我们介绍当下WG的大致分类,按我目前水平看来,主要分为以下几种:  一、模拟式  这类WG的优点是制作与实现简单,周期短,涉及技术面小,很适合从未接触过外挂方面的人员入门学习用,缺点是功能不多,较为单一,按键精灵是之中代表。   其以先得到目标游戏的一些程序窗口特征,然后模拟用户的鼠标键盘...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。