在我的WPF程序中,我有一个sudo pecl install pecl_http
组件,其中有一些ListBox
。
当我按下列表的元素时,我需要抓住这个事件,但我的代码不起作用:
ListBoxItems
我应该抓住事件 private void mailsListBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("-------------"); // even this doesn't work
switch (mailsListBox.SelectedIndex)
{
// this doesn't work too...
case 0: MessageBox.Show("00"); break;
case 1: MessageBox.Show("11"); break;
case 2: MessageBox.Show("22"); break;
default: break;
}
}
吗?
MouseLeftButtonDown
答案 0 :(得分:2)
我认为如果您处理 SelectionChanged 事件会更好。
答案 1 :(得分:1)
正如tagaPdyk所说,您应该实际捕获 SelectionChanged 或 SelectedIndexChanged 事件事件,如下所示:
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
//maybe check if there actually is a selection
if(listBox1.SelectedItems[0] != null)
{
var item = listBox1.SelectedItems[0];
//do something with your item
}
}
您实际上可以在列表框中获取所有选定的项目(返回array
),或者只使用listBox1.SelectedItems[0]
获取第一项。在您的控件properties
中,您可以定义是否需要多选。