如何使用鼠标悬停检测组合框上当前丢弃的值

时间:2013-10-28 02:42:13

标签: c#

在C#,VS 2010,Forms上使用组合框。

放下组合框后,用鼠标滚动选项列表。哪个事件会在MSDN Combobox Events

上触发此事件

示例:组合框中的选项列表是苹果,香蕉,巧克力等,你指向苹果它称之为事件,你指向香蕉它称之为同一事件等。

另外,如何获得指向的值?

如果没有可用的活动,我可以通过程序制作一个吗?

很长一段时间谷歌搜索似乎无法找到我需要的东西。

2 个答案:

答案 0 :(得分:2)

  1. 哪个事件触发了...... 如果您创建一个组合框并添加项目,您可以设置SelectedIndexChanged事件并将其设置为您自己的自定义事件处理程序,如下所示:

    comboBox1.Items.Add("Apple");
    comboBox1.Items.Add("Banana");
    comboBox1.Items.Add("chocolate");
    
    comboBox1.SelectedIndexChanged += ComboBox1OnSelectedIndexChanged;
    
  2. 该方法接收的是一个类型为combobox的发送方对象,唯一棘手的是签名将其设置为一个对象。投射它可以让我们拿出价值。

    private void ComboBox1OnSelectedIndexChanged(object sender, EventArgs eventArgs)
    {
        myvalue = ((ComboBox)sender).SelectedValue;
    }
    

答案 1 :(得分:0)

好像你可以从这个

得到你想要的东西

Redrawing of owner-drawn winforms combobox items

特别是

(state& DrawItemState.HotLight)> 0

如果有更多解释,请告诉我。

编辑 -

我的意思是,通过实现ownerdraw,您可以了解鼠标所在的项目。当鼠标悬停在项目上时,则按照链接的文章

((state& DrawItemState.Selected)> 0)|| ((state& DrawItemState.HotLight)> 0)

是真的。

因此,在这种情况下,您可以根据需要使用OP想要的信息触发事件。