C# 当下拉列表打开时,如何通过右键单击删除组合框中的选定项?
打开下拉列表时,如何通过右键单击删除组合框中的选定项 问题是,当您使用eventC# 当下拉列表打开时,如何通过右键单击删除组合框中的选定项?,c#,winforms,drop-down-menu,combobox,C#,Winforms,Drop Down Menu,Combobox,打开下拉列表时,如何通过右键单击删除组合框中的选定项 问题是,当您使用eventSelectedIndexChanged时,它没有MouseEventArg作为参数,这意味着您无法定义按下了哪个鼠标按钮 另一方面,当您使用eventMouseDown时,它无法检测SelectedIndexChanged。只有一种情况下,MouseDown在按下按钮时起作用。右键,单击没有打开下拉菜单的组合框(基本上是右键单击组合框) 你有什么建议吗 到目前为止,我所尝试的: private void combo
SelectedIndexChanged
时,它没有MouseEventArg
作为参数,这意味着您无法定义按下了哪个鼠标按钮
另一方面,当您使用eventMouseDown
时,它无法检测SelectedIndexChanged
。只有一种情况下,MouseDown
在按下按钮时起作用。右键
,单击没有打开下拉菜单的组合框
(基本上是右键单击组合框
)
你有什么建议吗
到目前为止,我所尝试的:
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);
}
}
我用一堆项目设置了comboBox,并将其设置为
下拉列表
我已将处理程序添加到MouseDown
事件中
private void comboBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Right)
return;
comboBox1.SelectedIndex = -1;
}
如果选择了任何项目,当您右键单击组合框时,它将取消选择所选项目
现在,如何在
SelectedIndexChanged
中处理此更改是完全不同的项目。希望这能回答您的问题。为什么要在组合框显示时从中删除项目?从一开始这似乎是个坏主意。你能写你的用例吗?比如,用户选择项目,点击这里,点击那里,预期行为,等等<代码>使用event SelectedIndexChanged时,它没有鼠标eventarg这一事实是正常的。因为SelectedIndexChanged
是组合框的事件,而MouseEventArg
是用户的事件activity@T.S.我已经告诉过用例,我需要在右键单击时删除所选项目,如果您有任何建议,请让我知道……@tonni请查看我的答案。希望您想要的是什么,还是希望从列表中完全删除您的项目?这就是为什么我要求给出一步一步的用户操作。这就是您定义需求的方式