2016-08-04 25 views
0

フォームのパネルに追加したユーザーコントロールがあります。 私はこのフォームをパネルに追加する方法を知っておく必要があるため、このフォームを追加でコピーするコードを用意しました。 Panelにはcontrolsプロパティがありません。vb6のメインフォームのパネルにユーザーコントロールを追加します。

If intCount > 0 Then 
     For intindex = 0 To intCount - 1 
      If intindex > 0 Then 
       Load CICMod(intindex) 
       With CICMod(intindex) 
        .Width = 8775 
        .Height = 3735 
        .Top = CICMod(intindex - 1).Top + 3735 
        .Left = 360 
        .Visible = True 
       End With 
      End If 
      With CICMod(intindex) 
       .RecordID = rs.Fields(0) 
       .Revision = rs.Fields(1) 
       .Seq = rs.Fields(2) 
       .Who = IIf(IsNull(rs.Fields(3)), "", rs.Fields(3)) 
       .Entrydate = IIf(IsNull(rs.Fields(4)), "01/01/1900", rs.Fields(4)) 
       .Hours = IIf(IsNull(rs.Fields(5)), 0, rs.Fields(5)) 
       .Project = IIf(IsNull(rs.Fields(6)), "", rs.Fields(6)) 
       .Types = IIf(IsNull(rs.Fields(7)), "", rs.Fields(7)) 
       .Names = IIf(IsNull(rs.Fields(8)), "", rs.Fields(8)) 
       .Description = IIf(IsNull(rs.Fields(9)), "", rs.Fields(9)) 
      End With 
      If Not rs.EOF Then 
       rs.MoveNext 
      End If 
     Next 
     rs.Close 
    Else 

    End If 

答えて

1

これはcontainerプロパティは、この場合には、そのフレーム1に、この方法でVB6には存在しません「パネル」を、そのコントロールの親を設定し、それ

Set CICMod(intindex).Container = Frame1 

を行う必要がありますCICMod(intindex)がFrame1に含まれるようになりました。

また、.AddメソッドのオプションのContainerパラメーターを使用することもできます。

Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", "myctl", Frame1) 

のように使用されるだろう

object.Add (ProgID, name, container) 

しかし、多くは、必要に応じて、私は最初のをお勧めしますので、メソッドは常に動作しないことを発見しました。後者を試してみたい方は、もう少し読んでください(上記の両方のサンプルはこれらから派生したものです)。 https://msdn.microsoft.com/en-us/library/aa277578(v=vs.60).aspxまたはhttps://support.microsoft.com/en-us/kb/190670

+0

この機能が動作する理由と、それがユーザーのプロジェクトにどのように適用されるかについての詳細な説明と詳細を追加してください。 – dbmitch

+1

@dbmitch答えはかなり明白で自明です。 – topshot

関連する問題