0
我有兩種類似的方法來根據需要添加用戶控件到面板。但是,嘗試添加時,該方法被調用並完成,但不會將用戶控件添加到表單。嘗試添加用戶控件的各種不同方式時,有一次我可以移動初始用戶控件,它將移動到爲其他用戶控件留出空間,但用戶控件不可見。控件不顯示
編輯:最初的add方法(addInitialItemGroupTest)不工作
Public Sub addItemGroupTest(ByVal sender As Object, ByVal e As EventArgs)
Console.WriteLine(Me.GetType.ToString() + "||" + System.Reflection.MethodInfo.GetCurrentMethod.ToString())
Dim item_block_new As New ucItemsetItemBlock
' item_block_new.Visible = True
' item_block_new.Dock = DockStyle.Top
item_block_new.flpMain.Name = (10 + item_set.blocks.Count()).ToString
item_block_new.BringToFront()
frm.flpItemBlocks.Controls.Add(item_block_new)
' item_block_new.Show()
AddHandler item_block_new.flpMain.Click, AddressOf addItemToItemBlock
End Sub
Public Sub addInitialItemGroupTest()
Console.WriteLine(Me.GetType.ToString() + "||" + System.Reflection.MethodInfo.GetCurrentMethod.ToString())
Dim item_block As New ucItemsetItemBlock
' item_block.Dock = DockStyle.Top
item_block.flpMain.Name = (10 + item_set.blocks.Count()).ToString
item_block.BringToFront()
frm.flpItemBlocks.Controls.Add(item_block)
AddHandler item_block.flpMain.Click, AddressOf addItemToItemBlock
' item_block.Sh
End Sub
Public Sub showEditor()
frm = New frmItemsetEditor
frm.TopLevel = False
frm.WindowState = FormWindowState.Maximized
frm.FormBorderStyle = FormBorderStyle.None
If frm.Location.X < 0 Then
frm.Location = New Point(0, frm.Location.Y)
End If
If frm.Location.Y < 0 Then
frm.Location = New Point(frm.Location.X, 0)
End If
frm.Show()
addItems()
If id > 0 Then
Console.WriteLine("loading item set")
For Each item_block In item_set.blocks
frm.flpItemBlocks.Controls.Add(item_block)
Next
Else
Console.WriteLine("creating item set")
item_set = New LeagueItemSet
addInitialItemGroupTest()
' addInitialItemGroup()
End If
AddHandler frm.btnAddItemGroup.Click, AddressOf addItemGroupTest
loadUserControl()
frm.pnlItemSetUserControl.Controls.Add(uc)
frm.flpItemBlocks.BringToFront()
AddHandler uc.btnAddUpdate.Click, AddressOf updateSetting
End Sub
Private Sub btnCreateItemset_Click(sender As Object, e As EventArgs) Handles btnCreateItemset.Click
Parent.AccessibleDescription = "status:Loading: Itemset Creation Wizard"
rgoism.addSetting()
rgoism._Settings.Last.frm.Parent = Me.Parent
rgoism._Settings.Last.frm.Location = New Point(Convert.ToInt32((Parent.Size.Width/2) - (rgoism._Settings.Last.frm.Size.Width/2)), Convert.ToInt32((Parent.Size.Height/2) - (rgoism._Settings.Last.frm.Size.Height/2)))
rgoism._Settings.Last.frm.BringToFront()
Me.Hide()
Parent.AccessibleDescription = "status:Ready"
End Sub
'frm.Show()'不適用於TopLevel爲false的表單。你基本上使你的frmItemsetEditor成爲一個UserControl。需要將frm添加到容器的Control集合中。 – LarsTech
表單顯示和其他控件添加到窗體正常工作。我相信我們將其添加到代碼中的其他地方,但我可能是錯的。我可以測試理論 –
我只能通過你發佈的代碼去,我找不到'... Controls.Add(frm)' – LarsTech