掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SSTaB と Tabstripの違いについて (ID:108002)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 最近VBを始めたばかりの初心者なのですが SSTaBと TabStripの違いがよくわかりません、 Windows共通コントロール(コモンコントロール)群の一つに、「タブコントロール」という物が あります。TabStripは、それをVBから使いやすいように、AcitveXコントロール化した物です。 根底にあるのは、OSの標準的なコントロールですので、動作が軽いのが特徴と言えます。 (その分、SSTabよりも使いにくい面もあるのですが…) それに対する、Microsoft Tabbed Dialog Control(SSTab)ですが、実はこれ自体は OSの標準コントロールではありません。そもそも、Microsoft社が開発したものではなく、 『Sheridan Software Systems』社からOEM供給されているコンポーネントです。 > TabStripの有用性はどこにあるのでしょうか? 例えばTabStripは、MultiSelectを設定する事で、同時に複数のタブを選択状態に するようなアプリを作る事ができます。 また、SSTabには幾つかの問題がある事が知られているため、 TabStripを使われる方も多いようです。 (ただし、それらの問題の幾つかは、Service Packによって解決されていますけれどね) > SSTaBの方がデザインモードでそれぞれのタブを表示切替できて使いやすいのですが、 SSTab上の他のタブに置かれているコントロールにも、 アクセスできてしまう事がある事に気を付けてください。 例えば、フォームにSSTabだけを配置し、その最初のタブにCommand1をおき、 2番目のタブにCommand2を置いておくとします。ここで、 Option Explicit Private Sub Command1_Click() Debug.Print Command1.Left, Command2.Left MsgBox "1" End Sub Private Sub Command2_Click() Debug.Print Command1.Left, Command2.Left MsgBox "2" End Sub のようなコードを書いておきます。 これを実行し、最初のタブにあるCommand1を押します。("1"と表示されます) ここまでは問題ないのですが、この後、Command1上で、キーボードの矢印キーを押すと、 『フォーカスが消えてしまう』という問題が発生します。 ———正確には、フォーカスが消えたのではなく、別のタブ上に配置したはずの Command2上に移動しているのです。そのため、さらにそのままスペースキーなどを 押すと、画面には表示されていないはずの Command2 を押せてしまう、という事になります。 > また TabStripの場合それぞれのタブ上でのボタンなどの配置はどうすれば簡単にできるのでしょうか? TabStripはコンテナにはなれないので、ボタンなどを重ねて配置する事はできますが、 TabStrip自体にボタンを貼り付けるという事はできません。 そこで、ヘルプの『タブ ストリップ (TabStrip) コントロール』の項にあるサンプルのように、 Frameなどの別のコンテナコントロールを併用するのが一般的です。 つまり、ボタンやテキストボックスなどのVisibleを個別に修正するのではなく、 コンテナ自体のVisibleを編集する事で、その上にあるコントロールの表示/非表示を 一度に切り替える事ができるというわけですね。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.