在流布局面板中创建的动态控件错误的大小

时间:2014-06-20 13:59:22

标签: c# vb.net windows flowlayoutpanel text-size

这可能是我遇到的最酷的最烦人的错误。

我有一个流程布局面板,里面有一个listview。

ListView的大小为500 FlowLayoutPanel的大小为800

当用户点击按钮时,会创建一个大小为400的新控件

FlowLayoutPanel的大小增加到900

ListView的大小减小到flowlayoutpanel大小(900) - 新控件(400)减去20(边距)

将Control添加到FlowLayoutPanel

问题是当用户将Windows设置字体大小设置为“中”而不是“amsller”时,数学会混乱并将音符控件固定在列表视图后面。

还有其他人遇到过这个问题吗?

Dim noteControl As New AddNote(CurrentEventID, "Followup", False, ConnectionID)

    noteControl.Size = New Size(500, flpMain.Height - 2)

    noteControl.cmbNoteType.Visible = False
    noteControl.Anchor = AnchorStyles.Right

    ListView1.Size = New Size(flpMain.Size.Width - noteControl.Size.Width - 45, ListView1.Size.Height)

    flpMain.Controls.Add(noteControl)

    flpMain.Width = Me.Width - 10

    For Each mycontrol As Control In flpMain.Controls
        If mycontrol.Name.ToString = "AddNote" Then

            y = CType(mycontrol, AddNote)
            mycontrol = y

            ListView1.Width = flpMain.Width - y.Width - 45

        End If
    Next

    If flpMain.Controls.Count = 1 Then

        ListView1.Width = flpMain.Width - 10

    End If

    Dim columns As Integer = ListView1.Columns.Count

    ListView1.Columns(columns - 1).Width = ListView1.Width

    For index = 0 To columns - 2

        ListView1.Columns(columns - 1).Width = ListView1.Columns(columns - 1).Width - ListView1.Columns(index).Width

    Next

0 个答案:

没有答案