如果在下拉列表打开时右键单击ComboBox
中的所选项目?
问题是,当您使用事件SelectedIndexChanged
时,它没有MouseEventArg
作为参数,这意味着您无法定义按下哪个鼠标按钮。
另一方面,当您使用事件MouseDown
时,它无法检测到SelectedIndexChanged
的时间。只有一个案例MouseDown
在您按下Button.Right
时工作,而当您点击没有打开的下拉菜单的ComboBox
时(基本上右键点击ComboBox
)
你有什么建议吗?
到目前为止我尝试过:
private void combobox1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
MessageBox.Show("mouse up");
}
private void combobox1_SelectedIndexChanged(object sender, EventArgs e)
{
if ((cmbSearch.SelectedIndex) != (-1))
{
combobox1.Items.RemoveAt(cmbSearch.SelectedIndex);
}
}
答案 0 :(得分:1)
我已经将comboBox设置为一堆项目并将其设为drop down list
。
我已将处理程序添加到MouseDown
事件
private void comboBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Right)
return;
comboBox1.SelectedIndex = -1;
}
这样做,如果选择任何项目,当您右键单击组合框时,它会取消选择所选项目。
现在,您在SelectedIndexChanged
处理此更改的方式完全不同。希望这能回答你的问题。