First of all standard hotkey for saving is CTRL+S, I strongly recommend notusing CTRL+W for that.
Access keys are usually used for that, but the are ALT+something combinations not CTRL.
To use CTRL combinations I'd use a context aka popup menu in which you define a save item. These menuhotkeys also work, if you don'T show/activate the menu, so there you have a central entity for defining hotkeys.
But there's another standard mechanism for buttons, the default and cancel buttons, buttons with their default or cancel property set to .T. can then also be triggered by ESC (cancel) and ENTER (default).
Well and by windows design a default button usually is the OK button that saves changes/settings made and closes a form, so it's very much usable for the save button. From anywhere, no matter what has the current control. You could argue for ENTER neither being CTRL+S nor CTRL+W, as by your original plan and also ENTER being necessary when you SET CONFIRM ON, just to signal end of input. But you also have tab for, well, tabbing to the next control. And as the help describes it the only other problem of using ENTER within a editbox is not your problem as you say the user is acting within a grid. Even if you make one grid column an editbox, there's CTRL+ENTER.
A menu item also can't use THISFORM, but the code that executes can be defined on the fly with ON BAR and can use an object variable referencing the form, besides you have _Screen.Activeform Just be warned that ON KEY LABEL is global, that it could be triggered if no form is active and then activeform is NULL and using it triggers an error. So first check whether _Screen.activeform actually is not null, if you use it, which makes it incompatible to use in a simple one-liner code, even when you think of using IIF or EXECSCRIPT. You better call something, but then for encapsulation reasons it should be a form method and you recurse into the problem of not being able to use THISFORM or rely on ACTIVEFORM.
You could try to define a general purpose save method in your application class (usually active and globally visible as goApp) and call that, which in turn could see whether _screen.activeform is valid and then use that to call the form specific save method. That would work, though I still don't like using ON KEY LABEL for something that should have a limited local scope only, even when you consider CTRL+S to be a general hotkey anyway so it deserves being a goApp "event".
Chriss