• 締切済み

Tabstripでの非アクティブタブの判断

Tabstripを使用してタブブラウザに似たプログラムを 作成しているのですが、非アクティブタブのタブを右クリック し別フォームのメニューをポップアップさせ削除を選択 するとそのタブを削除出来るプログラムを作成しているの ですが、Removeで削除したい非アクティブタブのIndexを 取得する方法がわかりません。 どうかご教授の程よろしくお願いいたします。

みんなの回答

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.1

# VB6ということで。 要は、クリックしている(けど右クリックなので選択していない)タブを取得したいわけですね? Clickイベントではなく、MouseDownなどのクリック座標が取れるイベントを使ってはどうでしょうか? MouseDownのx,yにはTabstripコントロールのクライアント座標(TabstripのLeft/Topを原点とする座標)が入ります。 また、TabオブジェクトのLeft/Top/Width/Heightはそれぞれタブ(Clickできる部分)の場所が入ります。 Dim oTab As ComctlLib.Tab For Each oTab In TabStrip1.Tabs With oTab If (.Left + .Width) >= x + TabStrip1.Left And .Left <= x + TabStrip1.Left Then If y + TabStrip1.Top <= .Height Then Debug.Print "タブ"; oTab.Index; "がクリックされました" Exit For End If End If End With Next こんな感じでしょうか。 (タブは1列固定です)

simoview
質問者

お礼

MouseDownのx,yにて判断する方法があるのですね。 アドバイスありがとうございます。 申し遅れましたが環境はVB6です。

専門家に質問してみよう