控件未显示

时间:2017-08-24 22:28:45

标签: vb.net user-controls

我有两种类似的方法可以根据需要将用户控件添加到面板。但是,在尝试添加时,将调用并完成该方法,但不会将用户控件添加到表单中。在尝试添加用户控件的各种不同方式时,有一次我可以移动初始用户控件,它会移动为另一个用户控件留出空间,但用户控件不可见。

编辑:初始添加方法(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

1 个答案:

答案 0 :(得分:0)

我连续调试了近12个小时。几乎睡着了,我进入了一堆console.writeline()进入测试它的方法,因为我已经迷路了。接下来我知道,它是向表单添加可见的用户控件。我只需要测试它们并确保它们是独特的但我太累了。我不知道它现在是如何工作的,因为我没有故意改变任何代码行。也许我只是幸运地改变了正确的代码行。我也做了评论,然后回过头来。我完全彻底迷失了,但它现在有效。