刚开始接触c#不是很明白
请问一下,怎么让combobox在下拉框里显示一个值,但是它的实际值是另一个值呢?
找了半天还是不明白

解决方案 »

  1.   

                
                ComboBox.DisplayMember = "DeptName";//显示
                ComboBox.ValueMember = "DeptId";//实际
      

  2.   

    hcj3326526 你好,我是想绑定数据库,一列是id号,一列是“数值”,我想让id显示,但是取的值是“数值”
      

  3.   


    ComboBox.DataSource=DataTable1;
    ComboBox.DisplayMember = "id";//显示
    ComboBox.ValueMember = "数值";
    ComboBox.DataBind();
      

  4.   

    1楼已经是正确答案了。
    其实即使ListBox不提供这样的属性,这个问题也是可以解决的,比如用字典
    Dictionary<string,int>dic;
    dic["处理完毕"]=1;
    dic["正在处理"]=2;根据ListBox显示的值,就可以索引到实际的值。
      

  5.   

    就是 一楼给的这个就已经点到了 
    ComboBox.DisplayMember = "DeptName";//显示
    ComboBox.ValueMember = "DeptId";//实际
      

  6.   

      ComboBox.DisplayMember = "DeptName";//显示
       ComboBox.ValueMember = "DeptId";//实际
    要是不是用数据源控件添加的应该就是这么写,如果是用数据源控件提供数据,设置数据源控件的datafeild属性为显示字段,datavalue吧是值,如果没记错的话,应该差不多是
      

  7.   

    如果不是用数据源控件,设一下那个Items里的属性,即每一项设置一下,Items的项为处理完毕和正在处理,分别对应着处理完毕和正在处理的Value 的值分别设置1和2
      

  8.   

    +
    1楼的是正确的
     ComboBox1.DisplayMember = "显示的值";
                ComboBox1.ValueMember = "Id";
      

  9.   

    如果是绑定数据库的,1楼和5楼的已经够明白了
    如果不是绑定数据库的,简单的可以定义一个结构,复杂点的定义一个类来承载数据以下示例,在Form1中添加四个Button,一个comboBox和一个listBox1
    各种属性及名称都取默认值
    窗体中的代码如下,using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Text.RegularExpressions;
    using System.Runtime.InteropServices;
    using System.Net;namespace WindowsFormsApplication1
    {
        public partial class Form2 : Form
        {        public Form2()
            {
                InitializeComponent();
            }        //初始化 comboBox1 的列表
            private void button1_Click( object sender, EventArgs e )
            {
                comboBox1.Items.Add( new Simple( "aaa", 0 ) );
                comboBox1.Items.Add( new Simple( "bbb", 1 ) );
                comboBox1.Items.Add( new Simple( "ccc", 2 ) );
                comboBox1.Items.Add( new Simple( "ddd", 3 ) );
                comboBox1.Items.Add( new Simple( "eee", 4 ) );
            }        //初始化 listBox1 的列表
            private void button2_Click( object sender, EventArgs e )
            {
                listBox1.Items.Add( new Simple( "aaa", 0 ) );
                listBox1.Items.Add( new Simple( "bbb", 1 ) );
                listBox1.Items.Add( new Simple( "ccc", 2 ) );
                listBox1.Items.Add( new Simple( "ddd", 3 ) );
                listBox1.Items.Add( new Simple( "eee", 4 ) );
            }        //显示 comboBox1 选中项目的内容
            private void button3_Click( object sender, EventArgs e )
            {
                if ( comboBox1.SelectedItem == null )
                {
                    return;
                }            Simple k = (Simple)comboBox1.SelectedItem;
                MessageBox.Show( k.name + "   " + k.index.ToString() );
            }        //显示 listBox1 选中项目的内容
            private void button4_Click( object sender, EventArgs e )
            {
                if ( listBox1.SelectedItem == null )
                {
                    return;
                }            Simple k = (Simple)listBox1.SelectedItem;
                MessageBox.Show( k.name + "   " + k.index.ToString() );
            }
        }    /// <summary>
        /// 
        /// </summary>
        public struct Simple
        {
            public string name;
            public int index;        public Simple( string n, int i )
            {
                name = n;
                index = i;
            }        //重点是重写 ToString 方法,
            //由于 listBox 和 comboBox 控件 的项目(Item)都是object,
            //所以listBox 和 comboBox 控件显示项目内容时,
            //都是取项目的ToString()的结果
            public override string ToString()
            {
                //return name;            //也可以显示成
                return index.ToString() + "  " + name;
            }
        }}
      

  10.   

    分别设置DisplayMember和valueMember属性就行了。1楼的已经给出答案了
      

  11.   

    谢谢各位的回答,学习了
    我自己用了一个比较BT的办法……
    我绑定数据库的一列,然后select这个值对应的id列,取这个值就可以了。