在组合框下拉列表中查找valueMember

时间:2013-09-20 15:10:43

标签: c# winforms conditional-statements

我试图在一个for循环的组合框中找到一个特定的valueMember。这就是我到目前为止所拥有的

for (int i = 0; i <= this.cmbAssignedTo.Items.Count - 1; i++)
            {
                if (this.cmbAssignedTo.Items.Contains(clsColOpsUtilities.GetUserID()))
                {
                    this.cmbAssignedTo.SelectedValue = clsColOpsUtilities.GetUserID();
                }
                else
                {
                    this.cmbAssignedTo.Text = "All";
                }
            }

cmbAssignedTo是组合框。如何找到组合框中每个项目的值成员,看看我正在寻找的值是否在其中? 感谢

P.S。 这是getUSerID的代码:

'public static string GetUserID()         {             尝试             {                 return Environment.UserName;             }             catch(例外)             {                 return null;             }         }“

2 个答案:

答案 0 :(得分:2)

我想从clsColOpsUtilities.GetUserID()得到的值可能会匹配SelectedValue某些项目的某些ComboBox,请尝试以下代码:

cmbAssignedTo.SelectedValue = clsColOpsUtilities.GetUserID();
//If the GetUserID() doesn't match any ValueMember, then the SelectedIndex will be -1
if(cmbAssignedTo.SelectedIndex == -1) cmbAssignedTo.Text = "All";

注意:我会为组合框添加一些Item Text = "All",以便可以选择它。

答案 1 :(得分:1)

在您的问题中,您将遍历每个项目,然后选中此框(每次)以查看框中的整个项目列表是否包含用户ID。

这也是一样的事情:

var userId = clsColOpsUtilities.GetUserID();

this.cmbAssignedTo.SelectedValue = this.cmbAssignedTo.Items.Contains(userId) ? userId : "All";

如果组合框的项目包含userId,则将组合框的值设置为userId,否则将其设置为“All”。

如果没有关于您的代码正在做什么以及您希望它做什么的更多信息,很难确切地知道您在答案中想要什么。