zoukankan      html  css  js  c++  java
  • c#(winform)中ComboBox和ListBox添加项完全解决

    #(winform)中ComboBox和ListBox添加项完全解决

    刚开始用.net 的winform开发,发现好些控件都很难用,可能是不熟悉的原因吧,这不,一个给ComboBox添加项的问题就搞的我很头疼,我要同时给一个项添加名字和值,怎么都没法加,查了查资料,又自己汇总测试了下,终于全部搞定了,现把完整的方案写下。

    用comboBox的数据绑定的方法很简单,建一个数据源,绑定到ComboBox上,然后指定DisplayMember和 ValueMember就可以了。但是感觉好不灵活哦,如果我要在ComboBox上再添加一项,那怎么办?Web里面有ListItem, winform里面怎么没有了?感觉真是不爽,网上找了个方法,自己添加一个ListItem类,然后add到items里面,感觉还不错,有点象web 里面的用法了,可是问题又来了,添加的第一项怎么变成类名了?不是我给它赋的名字,其他项又都没有问题。于是又查到说,“因为combobox的 Item.ADD(一个任意类型的变量),而显示的时候调用的是这个变量的ToString()方法,如果这个类没有重载ToString(),那么显示的结果就是命名空间   +   类名”,于是加上重载的ToString()方法,好了,至此,我终于可以很方便的来给ComboBox和ListBox添加项了。

    首先添加类ListItem:
     /// <summary>
     /// 选择项类,用于ComboBox或者ListBox添加项
     /// </summary>
     public class ListItem
     {
      private string id = string.Empty;
      private string name = string.Empty;
      public ListItem(string sid, string sname)
      {
       id = sid;
       name = sname;
      }
      public override string ToString()  
      {  
       return this.name;
      }
      public string ID
      {
       get
       {
        return this.id;
       }
       set
       {
        this.id = value;
       }
      }
      public string Name
      {
       get
       {
        return this.name;
       }
       set
       {
        this.name = value;
       }
      }
     }

    然后在程序中使用:
    ListItem item = new ListItem("我是值", "我是名字");
    this.lbChoiceRoom.Items.Add(item);
    this.lbChoiceRoom.DisplayMember = "Name";
    this.lbChoiceRoom.ValueMember = "ID";

  • 相关阅读:
    net core 使用 rabbitmq
    asp.net core WebApi 返回 HttpResponseMessage
    asp.net core 2.1 WebApi 快速入门
    JQuery EasyUI combobox动态添加option
    php截取字符去掉最后一个字符
    JQuery EasyUI Combobox的onChange事件
    对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成
    Access2007 操作或事件已被禁用模式阻止解决办法
    Easyui 中 Tabsr的常用方法
    Win 7 IE11不能下载文件,右键另存为也不行
  • 原文地址:https://www.cnblogs.com/zhwl/p/3123339.html
Copyright © 2011-2022 走看看