0

我有这个代码:

private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
     if (listBox1.SelectedItem != null)
     {
          item = listBox1.SelectedItem.ToString();
     }
}

然后在设计器中 listBox1 所在的 Form 的 Load 事件中,我做了:

private void NewForm_Load(object sender, EventArgs e)
{
     this.Size = new Size(416, 506);
     this.Location = new Point(23, 258);
     listBoxIndexs();
     this.listBox1.SelectedIndex = 0;
}

listBoxIndexs() 是:

private void listBoxIndexs()
{
     for (int i = 0; i < Form1.test.Count; i++)
     {
          listBox1.Items.Add(Form1.test[i]);
     }
}

在 Load 事件中,我做了:

this.listBox1.SelectedIndex = 0;

因此,当我对这个表单进行 Show 时,我会在已选择索引 0 时看到列表框。问题是当我使用我的键向上和向下箭头在项目之间移动时,我只看到项目周围的框架向下移动,selectedIndex 始终保持为 0。

我该如何解决?

我试图在 this.listBox1.SelectedIndex = 0;也之后添加,listBox1.Select();但它没有帮助。

我正在使用 Visual Studio c# 2010 pro .net 4 客户端配置文件。

4

1 回答 1

3

确保您ListBox.SelectionMode的设置为One.

如果设置为MultiSimpleor MultiExtended,则仅当用户使用空格键或鼠标按钮选择项目时才会发生选择。这些模式中的箭头键只是移动选择框。

于 2012-11-27T19:16:30.143 回答