コンテキストメニューを定義して、それを別コントロールに割り当てて、
それを更に別のフォームからクリックで実行したく、下記の構造にしているのですが、ControlExの公開プロパティになっている点に、なんとなく違和感感じています。
もうちょっと綺麗な構造に出来ないでしょうか?

public class ContextMenuEx : ContextMenu
{
  public ToolStripItem OpenMenu { get; private set; }
}

public class ControlEx : Control
{
  public ContextMenuEx ContextMenuEx { get; set; }
  public ControlEx()
  {
    ContextMenu = ContextMenuEx;
  }
}

public class ViewControl : Form
{
  private ControlEx MyControlEx = new ControlEx();
  public ViewControl()
  {
    MyControlEx.ContextMenuEx.OpenMenu.Click += //クリックイベント

  }
}