举个例子,比如说comboBox有个click事件,点击一下会弹出相应的item,现在我想做到在控件上按enter键也能触发此事件,求教! 

解决方案 »

  1.   

    comboBox.click += comboBox_Click(object sender, system.event.args e);
    buuton.click += comboBox_Click(object sender, system.event.args e);
      

  2.   

    Tony_lau111082(刘寓) 
    comboBox.click += comboBox_Click(object sender, system.event.args e);
    buuton.click += comboBox_Click(object sender, system.event.args e);
    你这样做可以吗?能举个详细点的例子吗
      

  3.   

    个人认为有两种:
    1、在form初始化时给他的enter事件分配给click
    2、在触发enter按键时调用click事件
      

  4.   

    1、在form初始化时给他的enter事件分配给click
    2、在触发enter按键时调用click事件
    to lingfeng_314(凌风) 可怎么调用click事件呢?RaiseEvent不能调用控件的基类事件,关于说的ComboBox1_SelectedIndexChanged(Nothing,Nothing)
    可不能引发控件自己的处理过程,比如说ComboBox1_dragdrop(nothing,nothing)可不能产生下拉菜单的效果,用反射取得控件事件的委托后再调用委托方法的invoke?invoke参数又是什么呢?疑惑中!
      

  5.   

    像textbox这样的控件,事件的触发在类里面已经定义好了,比如在键盘按下的时候就调用KeyDown的delegate。所以你在外面只能控制delegate时处理的代码,而不能控制这个keydown什么时候会被触发。要做到触发任何你想要得event,可以用PostMessage的方法。
      

  6.   

    其实太简单不过啦。
    private void comboBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar == 13) //如果是回车键
    {
    SendKeys.Send("%({DOWN})"); //Alt + 下拉键头

    }
    }事件这东西被造出来时的目的之一就是防止一个类里定义的事件被类之外的东西随意触发,所以event后,在该类之外只能进行+=,-=操作,即订阅和取消订阅,而不能触发它。没有声明event关键字的delegate就没有这种限制啦。想想,事件这东西用delegate就完全可以实现,为啥后来又造了个event,就会明白它的用意了。event保证了事件订阅者的事件处理代码,如EventHandler(object sender, EventArgs e);时的sender肯定就是那个触发事件的对象,而不是会哪个莫名其妙的其它对象触发的。
      

  7.   

    同意jamesfay(James Fay) ,我最近也在烦恼当初为什么没认真学好winapi.
      

  8.   

    if(e.KeyValue=(char)13)
    {
        this.comboBox_Click(new object(),new System.EventArgs());
    }
      

  9.   

    private void comboBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar == 13) //如果是回车键
    {
    SendKeys.Send("%({DOWN})"); //Alt + 下拉键头

    }
    }代码看起来很有道理,但不知道namhyuk(namhyuk) 测试过没有,这段代码并不能激发下拉菜单事件,先找本API的书看看(此方法也不是很通用)
      

  10.   

    感谢各位,现在已经ok了,用Api似乎比较通用点,不用考虑是不是有COMBOBOX1.DRAPDROPED=TRUE类似的属性,
      Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Boolean, ByVal lParam As String) As Integer  Const CB_SHOWDROPDOWN = &H14F    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            SendMessage(ComboBox1.Handle, CB_SHOWDROPDOWN, True, 0)
        End Sub