请问如何在C#窗体的按钮上做一个键盘事件?

请问如何在C#窗体的按钮上做一个键盘事件?,第1张

打开Microsoft Visual Studio编辑器,建一个Windows应用程序,这时你就可以看到一个空白窗口,然后你选择工具栏上面的 视图 选项,在"视图"里找到工具箱(选择它)就会在左边出现工具箱的选项了.

你做的是一个事件对吧?

例如:你要工具箱里找到[ab]Button这个按钮,双击两下,此时那个按钮就d出了你的窗休上,然后你就用鼠标点下这个按钮,此时在右边就有一个属性窗口(如果没有,也是在 工具栏里的 视图选择中,选择 属性窗口 调出这个窗口)那属性窗口上有一个 "闪电"一样的图标,你选择它,进入事件选择页面.找到一个叫 Click 样的事件,双击它就会d到编辑代码页面(或你可以就在那空白窗体上直接双击那Button按钮也可以进入那页面)

相应代码为:

private void button1_Click(object sender, EventArgs e)

{

}

然后你可以在那{}中间自己编辑:

private void button1_Click(object sender, EventArgs e)

{

this.Close()//关闭此窗口

}

还可以:

private void button1_Click(object sender, EventArgs e)

{

Application.Exit()//也是关闭此窗口

}

了解?

对于母语不是英语的用户来说,一般地,他的电脑上至少会安装两种键盘布局。使用ALT+Ctlr手动切换键盘布局并非难事,但你有没有想过通过编程的方法切换键盘布局呢?请看下文。初学者也可学习一下怎样创建自己的Dll,呵呵。

一、准备工作: 我们的例子中要用到LoadkeyboardLayout和GetKeyboardLayoutName 这两个API函数,因此,请你先熟悉一下怎样在VB.Net环境下引用API,推荐你用FoxAPI这个软件。另外你还需要浏览一下键盘布局标识符表。二、开始编写: 启动VS.Net,创建一个VB.net“类库”程序,命名为LanguageSelector。 1、将代码窗口中的“Public Class Class1”改为“Public Class KeyboardLayout” 2、在代码窗口最顶部添加 Imports System.Runtime.InteropServices 3、在Public Class KeyboardLayout代码区域内添加以下常量 Const KLF_ACTIVATE As Integer = 1 '用于激活键盘布局 Const KL_NAMELENGTH As Integer = 9'键盘标识符缓冲区长度 Const LANG_EN_US As String = "00000409" '例子中用到的英语标识符 Const LANG_MO_MO As String = "00000450" '例子中用到的蒙古语标识符 4、继续,添加对API函数的引用 Declare Function LoadKeyboardLayout Lib "user32" Alias _ "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal _ Flags As Long) As Long Declare Function GetKeyboardLayoutName Lib "user32" Alias _ "GetKeyboardLayoutNameA" (ByVal pwszKLID As _ System.Text.StringBuilder) As Long 注意:其中对GetKeyboardLayoutName的默认参数进行了改写,由 ByVal pwszKLID As String改为 ByVal pwszKLID As System.Text.StringBuilder。这主要是为了简化代码,不必理会是托管还是非托管代码的问题。 5、添加类的方法 1)用于获得当前键盘布局名称的 getName Public Shared Function getName() As StringDim name As System.Text.StringBuilder = New _ System.Text.StringBuilder(KL_NAMELENGTH)GetKeyboardLayoutName(name)Return name.ToString() End Function 2)设置键盘布局为英语Public Shared Sub English()'为当前进程载入并激活英文键盘布局LoadKeyboardLayout(LANG_EN_US, KLF_ACTIVATE) End Sub 3)设置键盘布局为蒙古语 Public Shared Sub Mongolian()'为当前进程载入并激活蒙古语键盘布局LoadKeyboardLayout(LANG_MO_MO, KLF_ACTIVATE) End Sub 6、编译工程,形成LanguageSelector.dll 三、试用。 1、新建一个工程,在“解决方案资源管理器 | 引用”中添加上述LanguageSelector.dll。 2、在程序代码头部添加Imports LanguageSelector。 3、在窗体上放置三个按钮,命名为“英语”、“蒙古语”、“获取布局ID”。 4、加入以下代码: Private Sub 蒙古语_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles 蒙古语.Click KeyboardLayout.Mongolian() End Sub Private Sub 英语_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles 英语.Click KeyboardLayout.English() End Sub Private Sub 获取布局ID_Click(ByVal sender As Sstem.Object, _ ByVal e As System.EventArgs) Handles 获取布局ID.Click MessageBox("当前键盘布局ID号是:" &KeyboardLayout.getName) End Sub启动程序,按三个按钮,分别验证其功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11632643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存