C#|TabControl|クリックされたタブを取得する

TabControlのタブがクリックされるとマウスイベントが発生するが、どのタブがクリックされたかは分からない。
TabPageのクリックイベントはタブ部分をクリックしても発生しないようだ。 以下のメソッドは座標からタブのインデックスを取得する。これをイベントプロシージャに仕掛ければクリックされたタブを取得できる。

/// <summary>Point上のタブコントロールのタブ部分に対応したTabPageのインデックスを取得</summary>
/// <param name="point">インデックスを取得するPoint</param>
/// <returns>Point上にタブが無ければ-1が返ります。。</returns>
private int TabIndexFromPoint(TabControl tabControl ,Point point) {
	for(int i = 0; i <= tabControl.TabPages.Count - 1; i++) {
		if(tabControl.GetTabRect(i).Contains(point)) {
			return i;
		}
	}
	return -1;
}

 

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください