SplitContainer中的顶部ListView不会添加垂直滚动条

布兰曼

我有一个在SplitContainer中带有两个ListViews的Winforms应用程序。

当我拖动拆分器以隐藏Panel2 ListView项目的一部分时,它会自动添加垂直滚动条。
垂直滚动条显示在底部

当我拖动拆分器以隐藏Panel1 ListView项目的一部分时,它不会添加垂直滚动条。
在此处输入图片说明

更改哪个ListView在哪个Panel中具有相同的行为。好像有关SplitContainer或其面板的某些事情正在控制是否将垂直滚动条添加到Panel1中的ListView中。如何使顶部Panel1中的哪个ListView也自动添加垂直滚动条?

若要进行复制,请使用一个表单创建一个简单的Winforms应用程序。这是我的表单代码,然后是设计者表单代码。

Public Class Form1
    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Try
            Timer1.Enabled = False

            TechDateList.BeginUpdate()
            TechDateList.Items.Clear()
            StopsList.BeginUpdate()
            StopsList.Items.Clear()

            For i As Integer = 1 To 5
                Dim techItem = New ListViewItem
                techItem.UseItemStyleForSubItems = False
                techItem.SubItems(0).Text = Date.Now.ToString("MMM dd, yyyy")
                techItem.SubItems.Add(String.Format("Tech {0}", i))
                TechDateList.Items.Add(techItem)
            Next

            For i As Integer = 1 To 5
                Dim stopItem = New ListViewItem
                stopItem.UseItemStyleForSubItems = False
                stopItem.SubItems(0).Text = Choose(i, "AAA", "BBB", "CCC", "DDD", "EEE")
                stopItem.SubItems.Add(String.Format("Stop {0}", i))
                StopsList.Items.Add(stopItem)
            Next
        Catch ex As Exception
            MsgBox(ex.ToString(), MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Timer1_Tick Error 1")
        Finally
            TechDateList.EndUpdate()
            StopsList.EndUpdate()
        End Try

        Try
            ListSplitter.Panel1Collapsed = False
            ListSplitter.SplitterDistance = 125
            ListSplitter.SplitterWidth = 6
            TechDateList.Items.Item(0).Selected = True
        Catch ex As Exception
            MsgBox(ex.ToString(), MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Timer1_Tick Error 2")
        End Try
    End Sub
End Class
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Me.ListSplitter = New System.Windows.Forms.SplitContainer()
        Me.TechDateList = New System.Windows.Forms.ListView()
        Me.UInitial = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
        Me.SchedDate = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
        Me.StopsList = New System.Windows.Forms.ListView()
        Me.StopNum = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
        Me.StopName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
        Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
        CType(Me.ListSplitter, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.ListSplitter.Panel1.SuspendLayout()
        Me.ListSplitter.Panel2.SuspendLayout()
        Me.ListSplitter.SuspendLayout()
        Me.SuspendLayout()
        '
        'ListSplitter
        '
        Me.ListSplitter.Dock = System.Windows.Forms.DockStyle.Fill
        Me.ListSplitter.FixedPanel = System.Windows.Forms.FixedPanel.Panel1
        Me.ListSplitter.Location = New System.Drawing.Point(0, 0)
        Me.ListSplitter.Name = "ListSplitter"
        Me.ListSplitter.Orientation = System.Windows.Forms.Orientation.Horizontal
        '
        'ListSplitter.Panel1
        '
        Me.ListSplitter.Panel1.Controls.Add(Me.TechDateList)
        Me.ListSplitter.Panel1Collapsed = True
        Me.ListSplitter.Panel1MinSize = 0
        '
        'ListSplitter.Panel2
        '
        Me.ListSplitter.Panel2.Controls.Add(Me.StopsList)
        Me.ListSplitter.Size = New System.Drawing.Size(384, 261)
        Me.ListSplitter.SplitterDistance = 25
        Me.ListSplitter.SplitterWidth = 1
        Me.ListSplitter.TabIndex = 1
        '
        'TechDateList
        '
        Me.TechDateList.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
            Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.TechDateList.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.UInitial, Me.SchedDate})
        Me.TechDateList.FullRowSelect = True
        Me.TechDateList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None
        Me.TechDateList.HideSelection = False
        Me.TechDateList.LabelWrap = False
        Me.TechDateList.Location = New System.Drawing.Point(4, 0)
        Me.TechDateList.Margin = New System.Windows.Forms.Padding(0)
        Me.TechDateList.MultiSelect = False
        Me.TechDateList.Name = "TechDateList"
        Me.TechDateList.ShowGroups = False
        Me.TechDateList.Size = New System.Drawing.Size(258, 166)
        Me.TechDateList.TabIndex = 0
        Me.TechDateList.UseCompatibleStateImageBehavior = False
        Me.TechDateList.View = System.Windows.Forms.View.Details
        '
        'UInitial
        '
        Me.UInitial.Text = "Route"
        Me.UInitial.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
        Me.UInitial.Width = 100
        '
        'SchedDate
        '
        Me.SchedDate.Text = "Job Date"
        Me.SchedDate.Width = 133
        '
        'StopsList
        '
        Me.StopsList.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
            Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.StopsList.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.StopNum, Me.StopName})
        Me.StopsList.FullRowSelect = True
        Me.StopsList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None
        Me.StopsList.HideSelection = False
        Me.StopsList.LabelWrap = False
        Me.StopsList.Location = New System.Drawing.Point(4, 0)
        Me.StopsList.Margin = New System.Windows.Forms.Padding(0)
        Me.StopsList.MultiSelect = False
        Me.StopsList.Name = "StopsList"
        Me.StopsList.ShowGroups = False
        Me.StopsList.Size = New System.Drawing.Size(258, 252)
        Me.StopsList.TabIndex = 0
        Me.StopsList.UseCompatibleStateImageBehavior = False
        Me.StopsList.View = System.Windows.Forms.View.Details
        '
        'StopNum
        '
        Me.StopNum.Text = "000"
        Me.StopNum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
        Me.StopNum.Width = 34
        '
        'StopName
        '
        Me.StopName.Text = "Stop Name"
        Me.StopName.Width = 199
        '
        'Timer1
        '
        Me.Timer1.Interval = 250
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(384, 261)
        Me.Controls.Add(Me.ListSplitter)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ListSplitter.Panel1.ResumeLayout(False)
        Me.ListSplitter.Panel2.ResumeLayout(False)
        CType(Me.ListSplitter, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ListSplitter.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

    Friend WithEvents ListSplitter As SplitContainer
    Friend WithEvents TechDateList As ListView
    Friend WithEvents UInitial As ColumnHeader
    Friend WithEvents SchedDate As ColumnHeader
    Friend WithEvents StopsList As ListView
    Friend WithEvents StopNum As ColumnHeader
    Friend WithEvents StopName As ColumnHeader
    Friend WithEvents Timer1 As Timer
End Class

根据我在Designer代码中看到的信息,TechDateList Height超过ListSplitter.Panel1 Height:

Me.ListSplitter.SplitterDistance = 25

Me.TechDateList.Size = New System.Drawing.Size(258, 166)

确保TechDateList适合Designer中的Panel1,例如

Me.ListSplitter.SplitterDistance = 125

Me.TechDateList.Size = New System.Drawing.Size(258, 120)

然后调整大小将按预期工作。

还考虑LeftTechDateList停靠到-该列表将获得最大可能的高度,并将使用Panel1调整大小

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Div中的段落中添加垂直滚动条

来自分类Dev

在Div中的段落中添加垂直滚动条

来自分类Dev

如何在小部件中添加垂直滚动条?

来自分类Dev

如何在tabcontrol / tabpages中添加垂直滚动条

来自分类Dev

向表格垂直添加滚动条

来自分类Dev

Bootstrap固定顶部导航栏与垂直滚动条重叠

来自分类Dev

Bootstrap固定顶部导航栏与垂直滚动条重叠

来自分类Dev

Jekyll Rouge中的垂直滚动条

来自分类Dev

列表项顶部的Android listview滚动条

来自分类Dev

强制在ListView中显示滚动条?

来自分类Dev

文本(绝对)不会通过垂直滚动条

来自分类Dev

文本(绝对)不会通过垂直滚动条

来自分类Dev

是否可以在滚动条顶部添加文本?

来自分类Dev

自动将列调整为垂直滚动条的Listview

来自分类Dev

自动将列调整为垂直滚动条的Listview

来自分类Dev

在wordpress中添加滚动条

来自分类Dev

如何将垂直滚动条添加到Bootstrap工具提示中显示的图像?

来自分类Dev

如何在vuetify的模式对话框中添加垂直滚动条?

来自分类Dev

我想在asp.net中向gridview添加垂直滚动条

来自分类Dev

如何在 RadCartesianChart 中向 Telerik RadLegendControl 添加垂直滚动条?

来自分类Dev

将垂直滚动条添加到WPF网格

来自分类Dev

将垂直滚动条添加到JTextArea

来自分类Dev

Jssor:当页面很长时添加垂直滚动条

来自分类Dev

jQuery根据窗口的高度添加垂直滚动条

来自分类Dev

删除垂直滚动条

来自分类Dev

JScrollPane不会将滚动条添加到动态增长的表中

来自分类Dev

extJs中Itemselector中的垂直滚动条

来自分类Dev

ListView滚动条样式

来自分类Dev

QScrollArea:垂直滚动条引起的水平滚动条

Related 相关文章

热门标签

归档