DOBON.NET DOBON.NETプログラミング掲示板過去ログ

タブコントロールのクリックイベント

環境/言語:[C#]
分類:[.NET]

タブコントロールのヘッダー(通常上部のタブがあるところ)のタブ以外の場所がクリックされた時に処理をするにはどうしたらいいでしょうか。
クリック、マウスダウンイベントを見てみましたが、タブ上でクリックしたときしかイベントが発生しませんでした。

具体的に言うと、タブ以外のヘッダーをホイールクリック(?)した時に新しいtabを、
タブをホイールクリックしたときにそのタブを削除するようにしたいと思っています。

よろしくお願いします(__)
こんばんは〜

タブコントロールのイベント処理一覧に無いイベントをやる場合は、
ウィンドウプロシージャを利用してみると、意外といろんなことができたりします。
実を言うと、つい最近わたしもタブコントロールでタブからタブへ移動する間に走るイベントがなくて、悩まされてた時期がありました。(TabIndexChangedが走る前に処理したい)

話は戻って、今回の場合だとわたしの調べた限りだとWM_MBUTTONDOWNというメッセージが
ヘッダー部分をマウスホイールでクリックしたときに走ってるみたいなので、
それを使ってあげるといけるかもしれないです。
タブの追加処理/削除処理のやり方までは調べてないですが。

private const int WM_MBUTTONDOWN = 0x207;
protected override void WndProc(ref Message msg ){
switch(msg.Msg){
case WM_MBUTTONDOWN:
MessageBox.Show("ヘッダー部分クリック");
break;
}

base.WndProc(ref msg);
}

調べたばかりなので、不都合とかでたら、ごめんなさい。
おおー、ばっちりできました。
ありがとうございました(__)

DOBON.NET | プログラミング道 | プログラミング掲示板