Retrieving context menus from the form
I can't imagine why do you do this via Reflection, I believe the same can be done by walking through Controls tree. Your method will not work if context menu has property Generate member set to false in designer.

var contextMenus = fields.Where(f =&gt; f.GetValue(this).GetType() == typeof(ContextMenuStrip));
var menus = contextMenus.Select(f=&gt; f.GetValue(this));
return menus.Cast&lt;ContextMenuStrip&gt;(); 


Can be replaced with:

return fields.Select(f =&gt; f.GetValue(this)).OfType&lt;ContextMenuStrip&gt;();