2017-08-24 4 views
0

必要に応じてユーザーコントロールをパネルに追加する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 
+0

'frm.Show()'は、TopLevel falseのフォームでは動作しません。基本的にfrmItemsetEditorをUserControlにしました。コンテナのControlコレクションにfrmを追加する必要があります。 – LarsTech

+0

フォームが表示され、フォームに追加された他のコントロールが正しく機能します。私はコードのどこかに追加すると信じていますが、私は間違っている可能性があります。私は理論をテストすることができます –

+0

私はあなたが投稿するコードだけで行くことができ、私は '... Controls.Add(frm) 'を見つけることができませんでした – LarsTech

答えて

0

に動作し、私はまっすぐにほぼ12時間のデバッグを続けました。ほとんど眠っている間、私は紛失しているので、それをテストするメソッドにconsole.writeline()の束を入れました。次に私が知っていることは、フォームに表示されているユーザーコントロールを追加していることです。私はちょうどそれらをテストし、彼らが一意であることを確認する必要がありますが、私はあまりにも疲れています。意図的にコード行を変更していないので、どのように動作するのか分かりません。たぶん私は幸運にも幸運にもコードの正しい行を変更して変更しました。私はいくつかの行でコメントアウトして戻しました。私は完全に完全に失われていますが、現在は機能しています。

関連する問題