0

我试图在 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 是组合框。如何在组合框中找到每个项目的 valuemember 并查看我正在寻找的值是否在其中?谢谢

PS这是getUSerID的代码:

' public static string GetUserID() { try { return Environment.UserName; } 捕捉(异常){ 返回空值;} '

4

2 回答 2

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";

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

于 2013-09-20T15:15:24.753 回答
1

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

这做同样的事情:

var userId = clsColOpsUtilities.GetUserID();

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

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

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

于 2013-09-20T15:15:42.893 回答