我在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事件根本没有被“删除”按钮触发。
任何建议将不胜感激。
答案 0 :(得分:1)
在检查虚拟键码时,通常最好使用OnKeyUp
和OnKeyDown
,而不是OnKeyPress
。
因此使用它应该可以解决您的问题,然后在按下或放开时将检测到VK_DELETE
。