如何在下拉列表打开时右键单击组合框中的选定项目?

时间:2014-06-17 13:49:35

标签: c# winforms drop-down-menu combobox

如果在下拉列表打开时右键单击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);
    }
}

1 个答案:

答案 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处理此更改的方式完全不同。希望这能回答你的问题。