【发布时间】:2016-03-04 05:27:40
【问题描述】:
所以我对编程还是很陌生,我正在尝试创建一个程序,在该程序中,您将在文本框中输入一个数字(仅限 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 指令或 程序集参考?)”
我的代码:
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)
{
}
}
}
【问题讨论】:
-
错误是自我描述的。
TextChanged事件不接受KeyEventArgs。另外,您的班级中没有label2_Click方法。 -
您不需要处理
TextChanged事件。在您的表单上放置一个Button并处理按钮的Click事件,并在按钮单击事件处理程序中执行您需要的操作。然后将按钮设置为表单的AcceptButton属性的值就足够了。这样,当你进入时,你的按钮的代码就会执行。 -
感谢您的回复,但我正在上一门课程,它说我应该使用标签而不是按钮。我尝试将“TextChanged”更改为“KeyPress”和“KeyDown”,因为它不支持“KeyEventArgs”,但我不断收到错误。
标签: c# button overloading eventargs