2016-05-02 3 views
1

以下のコードはエラーです。タブストリップコントロール内にフレームを作成することは可能ですか?そうでない場合は、これに代わる方法はありますか?フレームコントロールをタブストリップコントロール内に配置できますか?

Dim NewFrame As MSForms.Frame 
    Dim NewTabStrip As MSForms.TabStrip 
    Set NewTabStrip = Controls.Add("Forms.TabStrip.1") 
    Set NewFrame = NewTabStrip.Controls.Add("Forms.TabStrip.1") 
+1

は、あなたがそれを達成したいですか?フレームは基本的に、複数のボタン、コンボボックス、リストボックスなどのコンテナです。すでに1つのコンテナ(親フォーム)とTabStripもあるため、親フォーム内に別のフォームを使用するとどうなりますか?あなたが達成したいことについてもう少し詳しく説明すれば、あなたをより良く助けることができるかもしれません。 – Ralph

答えて

0

Tab stripの使用は、例えば、 Multi pageはコントロールのコンテナではないため、コードNewTabstrip.Controls.Add...は失敗します。 Tab stripにはコントロールがありませんが、はのコントロールセットを維持しています。詳細については


参照:How to Use the TabStrip Control in a UserForm

そしてここに:How to Use the MultiPage Control in a UserFormは、複数ページの情報です。これはコントロール用のコンテナです。ページには独自のコントロールがありますので、それはあなたが探しているものです。


Tabstripコントロールを使用して、選択したタブに従ってNewFrameの色を変更する方法の例を示します。 AddTabstripという名前のコマンドボタンで新しいユーザーフォームを作成する例を使用するには) HTH

Option Explicit 

Private WithEvents NewTabStrip As TabStrip 
Private NewFrame As MSForms.Frame 

Private Sub AddTabstrip_Click() 
    If Not NewTabStrip Is Nothing Then 
     MsgBox "Tabstrip was allready added.", vbExclamation 
     Exit Sub 
    End If 

    Set NewTabStrip = Me.Controls.Add("Forms.TabStrip.1") 
    With NewTabStrip 
     .Height = Me.Height - 90 
     .Width = Me.Width - 30 
     .Top = 15 
     .Left = 15 
    End With 
    NewTabStrip.Tabs(0).Caption = "Tab 1" 
    NewTabStrip.Tabs(1).Caption = "Tab 2" 
    NewTabStrip.Tabs.Add "Tab3", "Tab 3" 

    Set NewFrame = Me.Controls.Add("Forms.Frame.1") 
    With NewFrame 
     .Height = NewTabStrip.Height - 30 
     .Width = NewTabStrip.Width - 30 
     .Top = NewTabStrip.Top + 20 
     .Left = NewTabStrip.Left + 15 
    End With 

    Call NewTabStripChanged 
End Sub 

Private Sub NewTabStrip_Change() 
    Call NewTabStripChanged 
End Sub 

Private Sub NewTabStripChanged() 
    ' This procedure runs when the TabStrip control named NewTabStrip 
    ' changes. This procedure will change the color of the NewFrame 
    ' control based on which tab the user selects. 
    Dim i As Integer 
    i = NewTabStrip.SelectedItem.Index 
    Select Case i 
     Case 0 
      ' First tab selected, change color to red. 
      NewFrame.BackColor = RGB(255, 0, 0) 
     Case 1 
      ' Second tab selected, change color to green. 
      NewFrame.BackColor = RGB(0, 255, 0) 
     Case 2 
      ' Third tab selected, change color to blue. 
      NewFrame.BackColor = RGB(0, 0, 255) 
    End Select 
End Sub 
関連する問題