如何在组合框中获取显示成员值而不是值成员? [英] How can I get the display member value instead of value member in combobox?

查看:79
本文介绍了如何在组合框中获取显示成员值而不是值成员?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我使用以下代码在 Combobox 中设置显示成员和值成员。我试图通过访问 Combobox.Text 属性来获取值成员。但它只返回Display成员值。有没有办法让显示会员价值?



我尝试过:



我尝试使用以下代码,



Combobox.Items



但是它将值返回为DataRow。

解决方案

看起来您正在使用DataTable作为数据源。

如果是这样,你可以做类似下面的例子。



初始化组合框:

 DataTable dtProviders = DbProviderFactories.GetFactoryClasses( ); 
comboDataProviders.DataSource = dtProviders;
comboDataProviders.DisplayMember = 名称;
comboDataProviders.ValueMember = InvariantName;





要访问所选项目,您可以这样做:

  private   void  comboDataProviders_SelectedIndexChanged( object  sender,EventArgs e)
{
尝试
{
DataRowView drv =(comboDataProviders.SelectedItem as DataRowView) ;
if (drv!= null
{
DataRow dr = drv.Row;
string dataProvider = dr [ InvariantName ]的ToString();
switch (dataProvider)
{
case MySql.Data.MySqlClient:do somethinsg break ;
默认 throw new 异常( string .Format( 数据提供者'{ 0}'不受支持。,dataProvider));
}
}
}
catch (例外情况)
{
MessageBox.Show (ex.ToString());
}
}





如果您想要更好的答案,您需要发布有关您具体案例的更多信息


Hi All,

I have used the following code to set the display member and value member in Combobox. I tried to get the value member by accessing the Combobox.Text property. But it is only returning the Display member value. Is there any way to get the display member value?

What I have tried:

I have tried by using the following code,

Combobox.Items

But it is returning the value as DataRow.

解决方案

Looks like you are using a DataTable as the DataSource.
If so, you can do something like the following example.

Initialize the combo box:

DataTable dtProviders = DbProviderFactories.GetFactoryClasses();
comboDataProviders.DataSource = dtProviders;
comboDataProviders.DisplayMember = "Name";
comboDataProviders.ValueMember = "InvariantName";



To access the selected item, you can do like this:

private void comboDataProviders_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        DataRowView drv = (comboDataProviders.SelectedItem as DataRowView);
        if (drv != null)
        {
            DataRow dr = drv.Row;
            string dataProvider = dr["InvariantName"].ToString();
            switch (dataProvider)
            {
                case "MySql.Data.MySqlClient": Do somethinsg break;
                default: throw new Exception(string.Format("The Data Provider '{0}' is not supported.", dataProvider));
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}



IF you want a better answer, you need to post more information about your specific case.


这篇关于如何在组合框中获取显示成员值而不是值成员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆