在winform中按值c#选择组合框项
我的combobox有下面的自定义类,我正试图通过编程方式按值选择一个项。我可以使用casting按值检索项目,但似乎无法按值选择项目在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; }
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”类型。