我的代码:
using System.Windows.Forms
class Class1
{
protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
if (keyData == Keys.Up)
{
Console.WriteLine("You pressed the Up arrow key");
return true;
}
...//and other code lines for Keys.Down, Keys.Left, Keys.Right
return true;
}
}
但是我得到了错误:
(namespace)。(class).ProcessCmdKey(ref System.Windows.Forms.Message,System.Windows.Forms.Keys):找不到合适的方法来覆盖。
如果我关掉
return true;
的
return base.ProcessCmdKey (ref msg, keyData);
我收到错误:
'对象'不包含ProcessCmdKey的定义。
事实上,我的ProcessCmdKey文字甚至没有变成绿色,但当我知道它应该是绿色时它会保持黑色。
它是否适用于我正在使用的.NET Framework版本?如果有的话,我使用Microsoft Visual Studio 2013来编译和运行我的代码。
或者它与我班级的安全级别有关?我正在与公共级别的班级合作
我正在学习如何将用户键输入注册为初学者。我已经在互联网上看到了关于这个主题的所有内容,这与我们提出的代码相同,但是我无法让它发挥作用。欢迎任何帮助。
答案 0 :(得分:1)
方法ProcessCmdKey
在类System.Windows.Forms.Control
中定义。因此,除非你在控件(或表单)中覆盖它,否则这将无效。
您的类Class1
不会从控件继承,因此您无法覆盖该方法(因为它不存在)。
错误讯息
'object'不包含ProcessCmdKey的定义
几乎告诉你的确如此。 object
是Class1
(隐式)的基类,而类object
(所有内容的基类)都没有该方法。