You could hardcode an OnObjectKeystroke trigger to capture the letter you want, then you could use Set Field to set the radio button field to the desired button.
Keep in mind it's hard coded, so if you want to change the buttons, you have to change everything all the way thru the script
edit:Here's a simple hardcoded example (don't forget to unzip-extract all):
I'm not sure how to do it the way Phil suggests.
But since this appears to be a "use values from field" value list, it doesn't have to be hard coded. Your script code use that keystroke to find the corresponding record in the table that stores the values used in the value list and from there insert the correct corresponding ID type value. This then will change if the data in the value table is edited without a need for modifying the script.
Say you have two fields in your values table: ID, Name.
Add a third field text, Letter, that auto-enters this calculation: Left ( Name ; 1 ). Put a unique values validation on this field to make sure that each name starts with a unique letter.
Set up an added occurrence of this table. I'll call it ValueTable|Letter.
Link it to a text field in your layout table to get this relationship:
Layout::pressedKey = ValueTable|Letter::Letter
In your script, you can use this code:
Set Field [Layout::pressedKey ; Get ( TriggerKeystroke ) ]
If [Not (Isempty ( ValueTable|Letter::Letter ) //pressed key matches to a record ]
Set Field [ Layout::RadioButtonField ; ValueTable|Letter::ID ]
Exit Script [false]
ExecuteSQL could also be used to get the ID and then you wouldn't need the Letter field nor the relationship.