c#(winform)combobox手动添加的选项怎么获取value?

有一个combobox,怎么添加display的text和value的值?
比如:
先add一个“请选择”,他的值为0
又有一个数据库:
ID,名称
1,张三
2,李四
然后通过数据库循环add,显示对应数据库中的“名称”,值对应数据库中的ID

最后我选择“请选择”时,传值为0,选择其他的时,对应他们的值。怎么做呢?高手赐教!

是winform程序,不是web

以下方法实现获取ComboBox中被选中项的值:

(1)在Visual Studio中新建一个“Windows 窗体应用程序”项目

(2)在项目中添加一个类MyItem。这个类有两个用途:

    在ComboBox中显示

    用于检索被选中项的值

MyItem.cs代码

namespace WindowsFormsApplication1
{
    class MyItem
    {
        public MyItem(string name, int value)
        {
            Name = name;
            Value = value;
        }
        public string Name { get; private set; }
        public int Value { get; private set; }
    }
}

(3)在Form1上布置一个ComboBox、一个Label

(4)窗体代码 Form1.cs

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 清空lable1
            label1.Text = string.Empty;            
            
            // 列表集合将作为comboBox1的数据源
            List<MyItem> list = new List<MyItem>();
            list.Add(new MyItem("张三", 10));
            list.Add(new MyItem("李四", 20));
            list.Add(new MyItem("王五", 30));

            // 绑定
            comboBox1.DataSource = list;
            
            // 在comboBox1中显示MyItem的Name属性
            comboBox1.DisplayMember = "Name";
        }
        
        // 获取被选中项的Value值
        private void comboBox1_SelectedIndexChanged(
                object sender, 
                EventArgs e)
        {
            // 将被选中的项目强制转换为MyItem
            MyItem item = comboBox1.SelectedItem as MyItem;
            // 显示被选中项的值
            label1.Text = string.Format("Value = {0}", item.Value);
        }
    }
}

(5)运行

程序启动后

改变comboBox1选择

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-19
先在外部定义一个类,比如MyItem,有两个属性TEXT,VALUE,重写ToString方法,返回Text的值。

在添加时,这样

MyItem item = new MyItem()
item.Text = "请选择";
item.Value = 0;

combobox.Items.Add(item);

item = new MyItem();

item.Text = "张三";
item.Value = 1;

combobox.Items.Add(item);

取值时,这样

MyItem item = combobox.SelectedItem as MyItem;

这样就可以通过item.Value得到你想要的值。
第2个回答  推荐于2017-09-01
combobox.datasource=dt;
combobox.displaymenber="名称";
combobox.valuemenber="ID";
dt是datatable,有ID和“名称”两个列
记忆中好像是这样滴。试试看本回答被提问者采纳

c#(winform)combobox手动添加的选项怎么获取value?
(1)在Visual Studio中新建一个“Windows 窗体应用程序”项目 (2)在项目中添加一个类MyItem。这个类有两个用途:在ComboBox中显示 用于检索被选中项的值 MyItem.cs代码 namespace WindowsFormsApplication1{ class MyItem { public MyItem(string name, int value) { Name = name...

C# winform中如何取得datagridview中的combobox选择的值,取的ValueMemb...
foreach(GridViewRow row in GridView1.Rows){ foreach(Control contr in row.Controls){ ComboBox cbo = contr as ComboBox;if(cbo != null){ \/\/找到咯,给分 记住用cbo.SelectedItem.Text ...} } }

获取comboBox选中的项的值?
获取combobox选择的值ItemIndex属性 ComboBox1.ItemIndex(取值范围0到ComboBox1.Items.Count-1)如果要选中项的内容ComboBox1.Items.String[ComboBox1.ItemIndex]或ComboBox1.Items[ComboBox1.ItemIndex]如何获取combobox选中的值1.添加combobox后做如下设置 2.根据自己的需要在类中重写如下方法 \/\/==...

C#winform程序中有一个combobox在绑定了数据的情况下如何实现可以手动输 ...
本来就可以选也可以输的啊,DropDownStyle别改,默认设置成DropDown就行了。

C# WinForm Combobox 赋值
comboBox 的值不一定要在下拉列表中的。直接设置值就好了。比如 要默认选中的人的ID是 aabbccd;this.comboBox1.SelectedText = "aabbccdd";我已经帮你测试过了。

关于C#winForm comboBox控件的SelectedValue属性
1.先绑定数据。讲数据表保存到datatable dt;this.comboBox1.DataSource = dt this.comboBox1.DisplayMember = "name";this.comboBox1.ValueMember = "id";这样comboBox里面就有了显示值和返回值。2,获取到Value属性后,要让它显示默认的项,就要找到该项在comboBox1中的位置Index int cmbindex= ...

C#winform问题 datagridview中combobox选项改变触发事件用哪个方法_百 ...
combobox的索引是5,如果不确定,可以通过弹出e.ColumnIndex看看你所点击的combobox的索引是几 private void datagridview_CellContentClick(object sender, DataGridViewCellEventArgs e){ if (e.ColumnIndex == 5 && e.RowIndex != -1 && !datagridview.Rows[e.RowIndex].IsNewRow){ \/\/这个地方写...

c#中怎么像COMBOX中添加值和名称。最好举个例子
需知comboBox里的项都是对象实例 新建一个类 \/\/\/ \/\/\/ 选择项类,用于ComboBox或者ListBox添加项 \/\/\/ public class ListItem:System.Object { private string id = string.Empty;public string Id { get { return id; } set { id = value; } } private string name = string.Empty;publ...

c#如何读取下拉框的值?
UI.Page { protected void Page_Load(object sender, EventArgs e){ } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){ LiteralControl li = new LiteralControl();li.Text = "Selected Value : " + DropDownList1.SelectedItem.Value;Page.Controls.Add(li);} } ...

C#中 combobox 显示数值和实际值怎么绑定
private int process; private int end; private int faceQuality; private int faceConfidence; private int processIncrement; private int endIncrement; private int interval; private int resolution; public Setting() { InitializeComponent(); \/\/\/ \/\/\/ 0=CI...

相似回答