VisualStudio等と同じようにTabのキャプションを右クリックして、コンテクスト・メニューを表示するには、
TabContainer.GetTabPageAtCursor(int x, int y)
を呼び出します。

StockDataAggregatorではTabPageを継承したクラスでこんな風に書いてました。


            if ((e.Button & MouseButtons.Right) == MouseButtons.Right)
            {
                TabPage p = this.GetTabPageAtCursor(e.X, e.Y);
                if (p != null)
                {
                    this.SelectedTab = p;
                    this.TabContextMenu.Show(this, e.X, e.Y);
                }
            }

  1. GetTabPageAtCursorでマウス位置のタブを取得。
  2. 取得できた場合はそのタブを選択状態にする(これは私の都合でそうしているだけです)
  3. クリックされた位置にコンテクストメニューを表示。
後はメニューのクリックイベントハンドらでタブを閉じるなりなんなりすればOKです。

あくまで、これは、私がそうしているだけで、方法は他にもあるかもしれません。