繁体   English   中英

将项目添加到列表框并选择它

[英]Add item to listbox and select it

我有一个列表框(如本主题中所述,将SelectionMode设置为MultiExtended )包含一个条目: "..." 当用户双击它时,将出现一个对话框以选择一个文件。 当用户选择一个时,对话框消失,该文件应添加到列表中。 所有这一切。

我的问题是我只想在列表框中选择新添加的条目 但是,通过以下代码,都选择了"..."和实际文件:

private void lbx_DoubleClick(object sender, EventArgs e)
{
    if (this.lbx.SelectedItem == "..."
            && this.ofdReferences.ShowDialog() == DialogResult.OK
    {
        this.lbx.Items.Insert(this.lbx.SelectedIndex, this.ofdReferences.FileName);
        this.lbx.SetSelected(this.lbx.SelectedIndex - 1, true); // select newly added entry
    }
}

所以我也添加了这一行:

this.lbx.SetSelected(this.lbx.SelectedIndex, false);        // unselect ...

现在,选择"..."条目而不是文件。

我什至尝试使用SelectedIndex = this.lbxProjectReferences.SelectedIndex - 1 这还将选择列表中的两个条目。

SelectedIndex属性适用于单选列表。 但是,我们也可以在双击事件中在多列表上使用它,因为双击将隐式选择一个正确设置SelecteItem项目。

因此,我使用了这种方法,即删除所选条目的列表,而仅添加我感兴趣的条目。

this.lbx.Items.Insert(this.lbx.SelectedIndex, this.ofdReferences.FileName);
var idx = this.lbx.SelectedIndex;
this.lbx.SelectedIndices.Clear();
this.lbx.SelectedIndices.Add(idx - 1); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM