当鼠标在c#中离开组合框时,如何使组合框在鼠标悬停时自动展开并关闭?

当鼠标在c#中离开组合框时,如何使组合框在鼠标悬停时自动展开并关闭?,c#,combobox,windows-forms-designer,mousehover,C#,Combobox,Windows Forms Designer,Mousehover,我有一张windows窗体。在windows窗体中,我有一个组合框。我在组合框中有预定义的项,如添加、删除和删除。我想让组合框在鼠标悬停时自动展开。我该怎么做?我注意到在组合框的鼠标悬停事件中应该给出自动展开代码。像这样 private void comboBox1_MouseHover(object sender, EventArgs e) { } 但我不知道如何展开组合框。谁能告诉我怎么做 好的,我完成了扩展部分 private void combo

我有一张windows窗体。在windows窗体中,我有一个组合框。我在组合框中有预定义的项,如添加、删除和删除。我想让组合框在鼠标悬停时自动展开。我该怎么做?我注意到在组合框的鼠标悬停事件中应该给出自动展开代码。像这样

     private void comboBox1_MouseHover(object sender, EventArgs e)
    {

    }  
但我不知道如何展开组合框。谁能告诉我怎么做

好的,我完成了扩展部分

    private void comboBox1_MouseHover(object sender, EventArgs e)
    {
        comboBox1.DroppedDown = true;

    }
但是当我离开组合框的鼠标指针时,我想关闭组合框。。如何做到这一点?

使用该属性并使其成为现实

 private void comboBox1_MouseHover(object sender, EventArgs e)
    {
      var box = sender as ComboBox ;
       box.DroppedDown = true;
    }  

comboBox1.DroppedDown=true

这里已经回答了这个问题


它实际上是

的一个副本,它只适用于组合框的小箭头部分。使用鼠标器(可能带有计时器)可以纠正这种情况。真正的挑战是在离开时关闭它。。在某处有一个帖子,它确实有效,但据我记忆所及,它相当核心。。顺便说一句:对于单个cb,不需要强制转换。@TaW是的,移除鼠标时它不会关闭。@Sajeetharan它可以工作,但问题是它不会在鼠标离开时关闭。在MouseMove中:
如果(!comboBox1.ClientRectangle.Contains(e.Location))comboBox1.Capture=false;else如果(comboBox1.Capture==false){comboBox1.DroppedDown=true;timer1.Interval=1000;timer1.Start();}
并且在计时器中:
点MP=new点(Cursor.Position.X-this.Location.X,Cursor.Position.Y-this.Location.Y);尺寸DDS=新尺寸(comboBox1.DropDownWidth,comboBox1.DropDownHeight);矩形DDR=新矩形(新点(comboBox1.Left,comboBox1.Top+comboBox1.Height),DDS);如果(!DDR.Contains(MP)){comboBox1.DroppedDown=false;timer1.Stop();}
@TaW,谢谢它能工作。。再次感谢你的帮助。请看下面我的评论!