我有一个列表框(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 ...
现在,"..."
选择了-entry而不是文件。
我什至尝试使用SelectedIndex = this.lbxProjectReferences.SelectedIndex - 1
。这还将选择列表中的两个条目。
该SelectedIndex
-property是单选择名单。但是,我们也可以在双击事件中在多列表上使用它,因为双击将隐式选择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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句