You can use a script with Exit Script [False] performed by an OnKeystroke script trigger to ignore keystrokes.
If the entire layout is locked, you could use this with OnLayoutKeystroke--though that locks out keystrokes for the entire layout.
A script such as
If [ IsEmpty ( Get ( ActiveFieldName ) ) ]
Exit Script [ Result: false ]
can be used to selectively ignore keystrokes if the cursor is not in a field at the time.