必要に応じてユーザーコントロールをパネルに追加する2つの同様の方法があります。ただし、追加しようとすると、メソッドが呼び出され、完了しますが、ユーザーコントロールはフォームに追加されません。さまざまな方法でユーザーコントロールを追加しようとしていましたが、初期のユーザーコントロールを移動することができ、別のユーザーコントロールのスペースを残すように移動しましたが、ユーザーコントロールは表示されませんでした。コントロールが表示されない
編集:最初の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にしました。コンテナのControlコレクションにfrmを追加する必要があります。 – LarsTech
フォームが表示され、フォームに追加された他のコントロールが正しく機能します。私はコードのどこかに追加すると信じていますが、私は間違っている可能性があります。私は理論をテストすることができます –
私はあなたが投稿するコードだけで行くことができ、私は '... Controls.Add(frm) 'を見つけることができませんでした – LarsTech