c#中的KeyPress事件
本文关键字:事件 KeyPress 中的 | 更新日期: 2023-09-27 17:49:18
这在VB中非常简单。. NET,我只需执行以下操作
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Enter) Then
e.Handled = True
cmdOk.PerformClick()
End If
End Sub
我不知道如何在c#中做等效的,而不是一般的文本框或表单。在Form1.cs中,在下拉菜单的左上角,没有选项来生成事件的方法(就像你如何在VB中生成Sub),我所拥有的就是WindowsFormsApplication1。Form1
先选择文本框。确保您看到属性窗口,如果没有,请使用视图菜单。单击闪电图标并找到KeyPress事件。双击它。然后让它看起来像这样:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
if (e.KeyChar == (char)Keys.Enter) {
e.Handled = true;
cmdOk.PerformClick();
}
}
这实际上不是正确的方法,不是在VB中。净。将表单的AcceptButton属性设置为cmdOk,这样您就不必编写任何代码。您现在还将在OK按钮周围获得一个沉重的边框,以便用户知道这是当她按Enter时被激活的键。从你当地的图书馆拿一本关于Winforms编程的书,这些东西很难通过反复试验来猜测。
代码示例可以在这里找到
要自动为特定事件创建方法,只需使用控件属性窗口顶部的下拉菜单。
我这里没有VS,但你可以看看这个youtube-video @ 0:40,你会看到一个VS截图,在右下角你会发现属性窗口。在它的顶部,你会发现事件的下拉菜单
选择你的文本框,打开属性窗口,点击靠近属性图标的事件图标,你可以看到事件列表,双击'KeyPress'
在Form属性中,您可以将事件链接到由事件代码定义的Key事件。或者通过基于KeyFormcode的代码链接它们。我使用c#将其更新为VS 2015:
using System;
using System.Windows.Forms;
namespace KeyDemoForm
{
public partial class KeyDemoForm : Form
{
public KeyDemoForm()
{
InitializeComponent();
}
public void KeyDemoForm_KeyPress(object sender, KeyPressEventArgs e)
{
charLabel.Text = "Key pressed: " + e.KeyChar;
}
public void KeyDemoForm_KeyDown(object sender, KeyEventArgs e)
{
KeyInfoLabel.Text =
"Alt: " + (e.Alt ? "yes" : "No") + ''n' +
"Shift: " + (e.Shift ? "yes" : "No") + ''n' +
"Ctrl: " + (e.Control ? "yes" : "No") + ''n' +
"KeyCode: " + e.KeyCode + ''n' +
"KeyValue: " + e.KeyValue + ''n' +
"KeyData: " + e.KeyData;
}
public void KeyDemoForm_KeyUp(object sender, KeyEventArgs e)
{
charLabel.Text = " ";
KeyInfoLabel.Text = " ";
}
public void KeyDemoForm_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
this.KeyDown += KeyDemoForm_KeyDown;
this.KeyUp += KeyDemoForm_KeyUp;
this.KeyPress += KeyDemoForm_KeyPress;
}
}
}