[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/02/12(Sat) 13:37
投稿者名:おじん
Eメール:
URL :
タイトル:
SSTabにLabelを配置する
説明がうまくできでればよいのですが。
SSTabのTab番号1以外にコントロールをIndex 0をつけて配置し、
プログラムでLoadして配置した場合、Tab移動したらところ、表示
されていません。なぜでしょうか。配置したい数が多いのでプログ
ラム的にやりたい。以下、テストソースです。

Option Explicit
Private Sub Form_Load()
'Tab2に配置
Load Label1(1)
Label1(1).Top = Label1(0).Top + Label1(0).Height * 2
Label1(1).Visible = True
Label1(0).BackColor = vbBlue'確認しやすいように色をつけた
Label1(1).BackColor = vbRed
'Tab3にはLabel2(0),Label2(1)を配置
End Sub

なお、Tab3には初めから配置しました。また、LabelをTextBoxに
変えても同様結果です。
よろしくおねがいいたします。

投稿時間:2005/02/12(Sat) 16:47
投稿者名:Say
Eメール:
URL :
タイトル:
Re: SSTabにLabelを配置する
コメントには
> 'Tab2に配置
と書いてますが、
実際にSSTabのTab2に配置している部分のコードは?

投稿時間:2005/02/12(Sat) 17:53
投稿者名:おじん
Eメール:
URL :
タイトル:
Re^2: SSTabにLabelを配置する
> コメントには
> > 'Tab2に配置
> と書いてますが、
> 実際にSSTabのTab2に配置している部分のコードは?
説明の仕方がわからなくて、、、
Tab2に、Label1をIndex=0として貼り付ける、ということです。
Label1(1)は、Load Label1(1)を実行します(コードで実行)。
その他は、Tab1は何も配置しない。テスト実行時はTab1とする。
Tab3は、Label2(0)とLabel2(1)を配置します。
これで、伝わりましたでしょうか?

投稿時間:2005/02/12(Sat) 21:20
投稿者名:Say
Eメール:
URL :
タイトル:
Re^3: SSTabにLabelを配置する
では、Label1(1)をSSTabのTab1に配置している部分のコードは?

投稿時間:2005/02/12(Sat) 21:53
投稿者名:おじん
Eメール:
URL :
タイトル:
Re^4: SSTabにLabelを配置する
> では、Label1(1)をSSTabのTab1に配置している部分のコードは?
申し訳ありませんでした。Tab番号はゼロオリジンでした。

このテストでは、Tab0には何一つ、コントロールはありません。
Tab1には、Label1(0)を一つ、
Tab2には、Label2(0)とLabel2(1)を配置します。

質問・疑問を繰り返しますと、
Loadで貼り付けたコントロールは、Tab移動した時表示されない。

しかし、次のようにして調べると、
「すでにLoadされています」というエラーになり、ちゃんとLoadされています。
ここで、もう一つ疑問発見。"tab 1"ではTrueにならない。大小文字を区別して
いるようです。Tab移動の判定はこの方法で正答なのでしょうか。これで
移動を判別はできましたが。

Private Sub SSTab1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If SSTab1.Caption = "Tab 1" Then
Load Label1(1)   '<===Load済みのエラーになる
End If
End Sub

投稿時間:2005/02/13(Sun) 00:34
投稿者名:Say
Eメール:
URL :
タイトル:
Re^5: SSTabにLabelを配置する
>> 質問・疑問を繰り返しますと、
> Loadで貼り付けたコントロールは、Tab移動した時表示されない。

ですから、
Label1(1)をSSTabのTab1に配置している部分のコードは?
と回答しているのですが・・・。

Loadした時点でコントロールはSSTabの上ではなく、Formの上に配置されます。
もし「SSTabのTab1に配置している部分のコード」がないのなら
おそらく、LoadされたLabelはSSTabの下に隠れていることでしょう。

Parent プロパティについて調べてみては?

ついでに、
VB初心者友の会
hhttp://www2j.biglobe.ne.jp/~little-g/vbtomo.html
の一般掲示板の
#1233 RE#1232:タブダイアログ(SStab)上のコントロールの座標指定


Programming Library
hhttp://homepage1.nifty.com/MADIA/
のMicrosoft Visual Basicの VISUAL BASIC Q & A 掲示板 の
SSTabの使い方 (2004/12/09(木) 14:22:43)
(hhttp://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200412/04120045.txt)
あたりにも目を通しておいたほうがいいかも。

投稿時間:2005/02/13(Sun) 03:25
投稿者名:おじん
Eメール:
URL :
タイトル:
Re^6: ありがとうございました

> ですから、
> と回答しているのですが・・・。
表現力に加えて、読解力もないことを知りました。恥ずかしいかぎりです。
> Loadした時点でコントロールはSSTabの上ではなく、Formの上に配置されます。
この仕様がわからなかったようです。
テスト実行のときTabの位置をTab1にしておくと「見えた状態」になったので、
これをSSTabの上にLoad(配置)されたと思い込んでいたのでしょう。ただ、
配置位置について、Label1(1).Widthが不自然なことには気が付いたのですが
深く追求せず「調整値」で済ませていたことも今になって反省しています。
添付していただいたサイトは必ず読ませていただきます。
試行錯誤の繰り返しでやっているのでこのような羽目になります。基礎学習が
大切なことを教えていただきました。ありがとうございました。

投稿時間:2005/02/15(Tue) 09:58
投稿者名:ダンボ
URL :
タイトル:
Re^7: ありがとうございました
> > Loadした時点でコントロールはSSTabの上ではなく、Formの上に配置されます。

私もSSTabではParent設定が必要なことに、デバッグ時に気がついた口です。

> 深く追求せず「調整値」で済ませていたことも今になって反省しています。

でも、私は追求した。
こんなページも見つけて読みました。なるほど。
hhttp://homepage1.nifty.com/MADIA/vb/vb_bbs2/200308_03080018.html

googleで「SSTAB TabStrip」で検索してミソ。他にも興味深い知識が得られるので。