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

标签 c# .net winforms combobox

我的组合框有以下自定义类,并且我正在尝试以编程方式按值选择项目。我可以使用转换按值检索项目,但似乎无法按值选择项目。

string test2 = ((GetAcctNum)_comboBox.SelectedItem).Value; 

//转换可以按值检索项目,但是如何按值选择项目呢?

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

最佳答案

当您将帐号列表分配给ComboBox 时,请指定向用户显示哪个属性,以及将哪个属性用作选择的基础值。

List<GetAcctNum> accountNumbers = GetAccountNumbersFromWherever();

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

然后,您可以通过指定帐户列表中的值之一来设置 SelectedValue

_comboBox.SelectedValue = "SomeValueFromYourListOfAccounts";

关于c# - 在winform中按值选择组合框项目c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37692321/

相关文章:

c# - Entity Framework 迁移在使用流畅 API 的扩展方法时抛出异常

c# - 文本框自动完成 - Winform + LINQ

c# - petapoco 共享连接

c# - 将 Tortoise SVN 修订号链接到程序集版本

c# - 可以通过索引方式获取类属性值或如何摆脱辅助方法 'GetValue'

.net - 面向对象的正确模式

c# - RemoveRange() 方法如何在 List<> 中工作?

c# - 使用 ExecuteScalar 插入时使用 Npgsql 检索序列号

c# - 使用 ExitWindowsEx 时,注销有效,但关机和重新启动无效

c# - 解决 WinForms 中的跨线程异常