Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在winform中按值c#选择组合框项_C#_.net_Winforms_Combobox - Fatal编程技术网

在winform中按值c#选择组合框项

在winform中按值c#选择组合框项,c#,.net,winforms,combobox,C#,.net,Winforms,Combobox,我的combobox有下面的自定义类,我正试图通过编程方式按值选择一个项。我可以使用casting按值检索项目,但似乎无法按值选择项目 string test2 = ((GetAcctNum)_comboBox.SelectedItem).Value; public class ComboboxItem { public string Text { get; set; } public object Value { get; set; }

我的combobox有下面的自定义类,我正试图通过编程方式按值选择一个项。我可以使用casting按值检索项目,但似乎无法按值选择项目

string test2 = ((GetAcctNum)_comboBox.SelectedItem).Value; 
    public class ComboboxItem
    {
        public string Text { get; set; }
        public object Value { get; set; }

        public ComboboxItem(string text, string value)
        {
            Text = text;
            Value = value;
        }
        public override string ToString()
        {
            return Text;
        }
    }


    private  void SelectCmbItemByValue( ComboBox cbo, string value)
    {
        for (int i = 0; i < cbo.Items.Count; i++)
        {

            ComboboxItem ci = (ComboboxItem)cbo.Items[i];
            string _value = ci.Value.ToString();
            if (ci != null && _value == value)
            {
                cbo.SelectedIndex = i;
                break;
            }
        }

    }
//铸造可以按值回收物品,但如何按值选择物品

public class GetAcctNum
{
    public string Value { get; set; }
    public string Text { get; set; }
    public override string ToString()
    {
        return Text;
    }
}
我不能使用下面的解决方案,因为我不知道文本。我只知道需要在组合框中选择的隐藏值

_comboBox.SelectedValue = _comboBox.Items.FindByText("text").Value;
下面是我如何将这些值添加到组合框中

SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
 {
     while (reader.Read())
    {
       temp = new GetAcctNum();
       temp.Value = reader["AccountID"].ToString();
       temp.Text = reader["AccountNumber"].ToString();  
        getAcctNum.Add(temp);
        rowsAffected++;
   }
 }
//Omitted for brevity//
foreach (GetAcctNum item in getAcctNum)
{
   _comboBox.Items.Add(item);
}

getAcctNum

将帐号列表分配给组合框时,指定要向用户显示的属性以及要用作选择的基础值的属性

List<GetAcctNum> accountNumbers = GetAccountNumbersFromWherever();

_comboBox.DataSource = accountNumbers;
_comboBox.DisplayMember = "Text";
_comboBox.ValueMember = "Value";

使用此类和方法按值选择项

string test2 = ((GetAcctNum)_comboBox.SelectedItem).Value; 
    public class ComboboxItem
    {
        public string Text { get; set; }
        public object Value { get; set; }

        public ComboboxItem(string text, string value)
        {
            Text = text;
            Value = value;
        }
        public override string ToString()
        {
            return Text;
        }
    }


    private  void SelectCmbItemByValue( ComboBox cbo, string value)
    {
        for (int i = 0; i < cbo.Items.Count; i++)
        {

            ComboboxItem ci = (ComboboxItem)cbo.Items[i];
            string _value = ci.Value.ToString();
            if (ci != null && _value == value)
            {
                cbo.SelectedIndex = i;
                break;
            }
        }

    }
公共类ComboboxItem
{
公共字符串文本{get;set;}
公共对象值{get;set;}
公共ComboboxItem(字符串文本、字符串值)
{
文本=文本;
价值=价值;
}
公共重写字符串ToString()
{
返回文本;
}
}
private void SelectCmbItemByValue(组合框cbo,字符串值)
{
对于(int i=0;i
试试这个
\u comboBox.Text=\u comboBox.Items.FindByText(“Text”).Value
;我想我以前试过这个,但不知怎么的,它现在起作用了。我想这是因为我之前没有重写ToString()。不工作。。。无法将“System.Data.DataRowView”类型的对象强制转换为“ComboboxItem”类型。