TStringGrid无法将VK_DELETE识别为按键

时间:2019-05-03 14:13:03

标签: c++builder rad-studio

我在TTab中有许多TStringGrid,并且一直在使用
如果(Key == VK_RETURN)多年(它是一个旧应用程序)作为执行与单元格条目有关的代码的触发器。

我现在想通过向其中写入一个空字符串来删除单元格内容的选项,因此尝试使用 如果(Key == VK_DELETE)

在我看来,“删除按钮”根本不会触发OnKeyPress事件。

我希望通过以下有关特定活动Stringrid1的代码捕获事件

void __fastcall TPagesDlgLoadEditorFixed::StringGrid1KeyPress(TObject 
*Sender, char &Key)
{
   int Grid = 1;
   EntriesOnStringGrid(Key, Grid);
}

,然后通过KeyPress传递所有StringGrid通用的代码,如下所示:

void TPagesDlgLoadEditorFixed::EntriesOnStringGrid(char &Key, int Grid)
{

 if (Key==VK_RETURN)
 {
   //code works fine
 }
 if (Key==VK_DELETE)
 {
   //code has no effect
 }

}

但是,在调试模式下,可以看到StringGrid1KeyPress事件根本没有被“删除”按钮触发。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

在检查虚拟键码时,通常最好使用OnKeyUpOnKeyDown,而不是OnKeyPress

因此使用它应该可以解决您的问题,然后在按下或放开时将检测到VK_DELETE