【问题标题】:select last added list item in combo box在组合框中选择最后添加的列表项
【发布时间】:2012-04-22 07:44:04
【问题描述】:

iam 使用组合框,在 c# 中不受数据源的限制。

cmbBox.Items.Add("apple");
cmbBox.Items.Add("orange");
cmbBox.Items.Add("banana");

现在我想将 SelectedIndex 设置为最终添加的“香蕉”,但不能使用 cmbBox.SelectedIndex = cmbBox.Items.count -1; 因为组合框已排序!

有什么建议吗?

【问题讨论】:

  • @jeremy 我曾经在 vb 中使用 NewIndex 并且正在搜索类似的内容。我尝试了 indexof、selectedindex、selecteditem 的所有表达式,它们的组合,最后失去了所有的方向/逻辑。抱歉,我没有用奋斗的大故事来填写这个问题,我必须找到答案以及我做了什么/没做什么。

标签: c# winforms combobox


【解决方案1】:

好吧,我在参考文档后想通了。我应该做的就是捕获 cmbBox.Items.Add("something") 语句的返回值并将其设置为 cmbBox.SelectedIndex

nReturn = cmbBox.Items.Add("first");
...
nReturn = cmbBox.Items.Add("last");
cmbBox.SelectedIndex = nReturn;

希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    以下对我有用

    ComboBox cb = new ComboBox();
    cb.Sorted = true;
    cb.SelectedIndex = cb.Items.Add("apple");
    cb.SelectedIndex = cb.Items.Add("orange");
    cb.SelectedIndex = cb.Items.Add("banana");
    

    在最后一行选择index = 1selected item = banana之后

    【讨论】:

    • 虽然不需要在添加时为每个项目设置 selectedindex 并且额外负载,但您已经接近回答了。谢谢。
    【解决方案3】:

    这很安静。就用这个...

    cb.SelectedIndex = cb.Items.Count - 1;

    【讨论】:

    • 这不是这个问题的答案。请仔细阅读。 OP说的就是这种情况。
    【解决方案4】:

    比这更简单。在您的情况下,列表的索引是“2”,因为列表是从零开始的,并且您添加了 3 个项目。因此,计算添加到列表中的项目数并减去 1. 3 项,减去 1 = 2。最后添加的项目的 selectedindex 为 2。

    【讨论】:

    • 欢迎来到 StackOverflow! OP 在他的问题中指出,他不能使用 count - 1 技术,因为他使用的组合框已排序,因此元素的索引可以更改。
    • 当你 76 岁时,你有时会错过更精细的细节。我应该更仔细地阅读这个问题。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多