I need to be able to detect that the shift key is being held, but I don\'t want to use events or global variables to determine that. Is there an API in C# that lets you ask
if ((Control.ModifierKeys & Keys.Shift) != 0)
This will also be true if another modifier key is also down (eg, Ctrl+Shift). If you want to check whether Shift alone is pressed without any other modifiers, use
if (Control.ModifierKeys == Keys.Shift)
Note that even this will be true if another non-modifier is down (Eg, Shift+A). If you want to check whether Shift and only Shift is pressed, you'll have to use an API call.
If you're in a class that inherits Control (such as a form), you can remove the Control qualifier. (static properties don't need qualifiers in inherited classes)