双击列表框项目 – C#
Double click on listbox item – C#
我的列表框中有一些项目,当我双击其中一个项目时,我希望 MessageBox 显示我双击的项目的信息。例如,我单击一个项目“Item 1”,MessageBox 显示为“Item 1”文本。这是我目前的解决方案,但它 returns 项目的索引,而不是实际项目:
private void empLbx_MouseDoubleClick(object sender, MouseEventArgs e)
{
int index = this.empLbx.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
MessageBox.Show(index.ToString());
}
}
this
是您的表单,而不是 ListBox
,您的列表框是变量 sender
。所以改变你的代码:
int index = ((ListBox)sender).SelectedIndex;
if(index != -1)
MessageBox.Show(index.ToString());
如果未选择任何项目,或者列表框为空,索引将为 -1
,因此 if(index != -1)
会同时处理两者。
试试这个:
private void empLbx_MouseDoubleClick(object sender, MouseEventArgs e)
{
int index = this.empLbx.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
MessageBox.Show(empLbx.SelectedItem.ToString());
}
}
我的列表框中有一些项目,当我双击其中一个项目时,我希望 MessageBox 显示我双击的项目的信息。例如,我单击一个项目“Item 1”,MessageBox 显示为“Item 1”文本。这是我目前的解决方案,但它 returns 项目的索引,而不是实际项目:
private void empLbx_MouseDoubleClick(object sender, MouseEventArgs e)
{
int index = this.empLbx.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
MessageBox.Show(index.ToString());
}
}
this
是您的表单,而不是 ListBox
,您的列表框是变量 sender
。所以改变你的代码:
int index = ((ListBox)sender).SelectedIndex;
if(index != -1)
MessageBox.Show(index.ToString());
如果未选择任何项目,或者列表框为空,索引将为 -1
,因此 if(index != -1)
会同时处理两者。
试试这个:
private void empLbx_MouseDoubleClick(object sender, MouseEventArgs e)
{
int index = this.empLbx.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
MessageBox.Show(empLbx.SelectedItem.ToString());
}
}