如何在 C# 中向文本框添加键盘快捷键(输入)
本文关键字:键盘 添加 快捷键 输入 文本 | 更新日期: 2023-09-27 18:37:14
所以我对编程仍然很陌生,我正在尝试创建一个程序,您将在其中输入一个数字(仅从 1-9),然后单击 Enter 而不是单击按钮即可将我在文本框上写的数字显示在我的第二个标签上。我不断收到两个错误,第一个抛出了一个
No overload for 'textBox1_TextChanged' matches delegate
'EventHandler'
当我将Key
添加到EventArgs
时(因为EventArgs
不包含Keycode
)。第二个是这里的标志:
this.label2.Click += new System.EventHandler(this.label2_Click);
"CS1061 'Form1'不包含'label2_Click'的定义,并且 没有扩展方法"label2_Click"接受类型的第一个参数 可以找到"Form1"(您是否缺少使用指令或 程序集引用?
我的代码:
using System;
using System.Windows.Forms;
namespace Tarea7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
label2.Text = textBox1.ToString();
}
if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "[^0-9]"))
{
MessageBox.Show("Debes de escribir un numero de 1-9");
textBox1.Text.Remove(textBox1.Text.Length - 1);
}
}
private void label2_TextChanged(object sender, EventArgs e)
{
}
}
}
将textBox1_KeyDown
事件添加到可视化设计器或文件 Form1.designer.cs 中的textBox1.KeyDown
事件中:
this.textBox1.KeyDown +=
new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
然后将以下函数添加到代码中。当用户键入 1 - 9 之间的数字并按 Enter 键时,该数字将被复制到 label2
。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
Text = DateTime.Now.ToString();
switch (e.KeyCode)
{
case Keys.Enter:
if (textBox1.Text.Length == 1)
{
char tbChar = textBox1.Text[0];
if (tbChar >= '1' && tbChar <= '9')
{
MessageBox.Show("Correct");
label2.Text = tbChar.ToString();
// Clear textbox
textBox1.Text = "";
return;
}
}
MessageBox.Show("Your input is not a number from 1 - 9");
break;
}
}
另外,您不需要此行,请将其删除:
this.label2.Click += new System.EventHandler(this.label2_Click);