我的代码:
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): no suitable method found to override.
如果我换掉了
return true;
对于
return base.ProcessCmdKey (ref msg, keyData);
我收到错误:
‘object’ does not contain a definition for ProcessCmdKey.
事实上,我的ProcessCmdKey文本甚至没有变成绿色,但是当我知道它应该是绿色时它会保持黑色.
它是我使用的.NET Framework版本的东西吗?如果有的话,我正在使用Microsoft Visual Studio 2013来编译和运行我的代码.
或者它与我班级的安全水平有关?我正在和一个公共级别的班级一起工作
我刚刚学习如何将用户键输入注册为初学者.我已经在互联网上查看了这个主题,这是相同的代码,但我无法让它工作.欢迎任何帮助.
最佳答案 ProcessCmdKey方法在System.Windows.Forms.Control类中定义.因此,除非你在控件(或表单)中覆盖它,否则这将无效.
您的类Class1不从控件继承,因此您无法覆盖该方法(因为它不存在).
错误消息
‘object’ does not contain a definition for ProcessCmdKey
几乎可以告诉你这一点. object是Class1的基类(隐式),类对象(所有的基类)没有该方法.