2017-02-27 44 views
1

我想在我的新面板中动态创建groupbox。我如何在vb.net中做到这一点?谢谢........................在新面板中动态创建groupbox

Dim Groups As New Dictionary(Of String, GroupBox) 
Dim Panels As New Dictionary(Of String, Panel) 
Dim jmlpnl As Integer = 1 
Dim jmlgrp As Integer = 10 

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim pnl As New Panel 
    For i As Integer = 1 To jmlpnl 
     Me.Controls.Add(pnl) 
     pnl.Width = 883 
     pnl.Height = 744 
     pnl.Top = 5 
     pnl.Left = 439 
     pnl.BackColor = Color.White 
     Panels.Add("Panel" & i, pnl) 
     pnl.Tag = "Panel" & i 
     For j As Integer = 1 To jmlgrp 
      'create groupbox in my new panel 
     Next 
    Next 

End Sub 
+1

既然你在Form Load中执行它为什么不通过设计器将它们放在表单上? – Plutonix

+0

我想让用户可以随时添加panel&groupbox – Lyn

+1

如果您显示的控件数量未知,您可以考虑将它们放在“FlowLayoutPanel”中。 –

回答

0

这不是一件非常困难的事情。您只需创建新的组框并将其添加到面板。你必须记住的仅仅是分配,这个代码把它们装进一个正确的,另外,如果你想要的东西不同,你需要与topleft变量玩:

Dim top As Integer = 0 
Dim left As Integer = 0 
For j As Integer = 1 To jmlgrp 
    'create groupbox in my new panel 
    Dim grp As New GroupBox 
    grp.Width = 50 
    grp.Height = 50 
    grp.Top = top 
    grp.Left = left 

    pnl.Controls.Add(grp) 
    left += 60 
Next 
+0

谢谢你这么多 – Lyn