首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyEventArgs和MouseEventArgs

KeyEventArgs和MouseEventArgs
EN

Stack Overflow用户
提问于 2013-08-18 02:13:04
回答 1查看 2.4K关注 0票数 0

我试着做一个按钮,处理进入和点击。我已经设置了我的子过程来处理键盘和鼠标点击,但是我不能从EventrArs访问EventrArs,也不能从System.EventArgs访问KeyEventArgs。我怎么能这样做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-18 04:15:00

虽然你的问题还不太清楚,但听起来你是在尝试从“System.EventArgs?”中输入键盘事件吗?

我不太清楚你在问什么,但贴上你的问题代码会帮助我们给出准确的答案。

下面我假设我在猜测您所问的内容与下面的示例有关:

EventArgs是一种类型,也是所有事件的基本类型。

似乎你想要一个子例程,可以同时处理点击和按键在一次。

下面的子例程'e_Handler‘将通过检查事件类型并将其转换为变量来接受MouseEventArgsKeyEventArgsKeyPressEventArgs,在该变量中,您可以相应地测试或使用结果状态:

代码语言:javascript
复制
' Handler for 3 event types:

Sub e_Handler(Sender As Object, E As EventArgs)

    If TypeOf E Is MouseEventArgs Then
        Dim K As MouseEventArgs = CTypeDynamic(Of MouseEventArgs)(E)

        MsgBox("Clicked Mouse at position " & K.Location.ToString & " on " & Sender.ToString)
    End If

    If TypeOf E Is KeyPressEventArgs Then
        Dim K As KeyPressEventArgs = CTypeDynamic(Of KeyPressEventArgs)(E)

        MsgBox("Pressed the key " & K.KeyChar & " on " & Sender.ToString)
    End If

    If TypeOf E Is KeyEventArgs Then
        Dim K As KeyEventArgs = CTypeDynamic(Of KeyEventArgs)(E)

        MsgBox("Pressed the key " & K.KeyCode & " on " & Sender.ToString)
    End If

    Me.Text = E.ToString

End Sub

然后,可以将此例程设置为任意数量的事件和控件的处理程序:

代码语言:javascript
复制
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    AddHandler Me.MouseClick, AddressOf e_Handler
    AddHandler Me.KeyPress, AddressOf e_Handler
    AddHandler Me.KeyDown, AddressOf e_Handler


    For Each C As Control In Me.Controls
        AddHandler C.MouseClick, AddressOf e_Handler
        AddHandler C.KeyDown, AddressOf e_Handler
        AddHandler C.KeyPress, AddressOf e_Handler
    Next
End Sub

编辑:

使用CTypeDynamic是为了避免编译器“隐式转换”警告,并确保如果您将项目设置为使用选项编译时,该方法不会抛出和异常。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18295049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档