VB: ListView не создает автоматически полосу прокрутки, когда добавлено слишком много элементов? - PullRequest
0 голосов
/ 11 июня 2011

В настоящее время я размещаю ListView в одной форме, а затем добавляю кнопки к этому ListView с помощью кода. Все работает прекрасно, за исключением того факта, что когда в список добавлено слишком много элементов, вертикальная полоса прокрутки не создается? Я могу просто добавить столько кнопок, сколько захочу, без их создания? Вот код, который добавляет кнопку в список:

        Dim x As Integer = 0
        Dim btnCount As Integer = -1
        Dim totalButtons As List(Of Button) = New List(Of Button)
        Dim mItems As ListView.ListViewItemCollection =
                New ListView.ListViewItemCollection(lstViewEditor)

        For x = 0 To 14
            'Create Button
            Dim button As Button = New Button
            button.Text = "0"
            button.BackgroundImageLayout = ImageLayout.Center
            button.BackColor = Color.WhiteSmoke
            button.Width = ((Me.lstViewEditor.Width - 10) / 15)
            button.Height = button.Width
            button.Location = New Point(x * (button.Width), 0)

            'If start
            If (Me.lstViewEditor.Controls.Count <= 14) Then
                button.Text = "2"
                button.BackColor = Color.Azure
            End If

            'Add To View
            'Me.Controls.Add(button)
            totalButtons.Add(button)

            btnCount = totalButtons.Count - 1
            AddHandler button.Click, AddressOf totalButtonHandler
        Next
        lstViewEditor.Controls.AddRange(totalButtons.ToArray)

Любая помощь будет высоко ценится! Я действительно установил Scrollable = true

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Полагаю, я мог бы ответить на свой вопрос в этот момент. Кнопка (элементы управления), добавляемая к ListView, не добавлялась в коллекцию представления, а просто добавлялась непосредственно в элемент управления. Это где у меня были трудности. Я предполагаю, что только когда дочерние элементы коллекции для представления растут выше определенной точки, вы получите полосы прокрутки, потому что я просто добавлял несколько вещей в коллекцию каждый раз, когда добавлял кнопку, и она давала мне полосы! Не понравилось это решение, так что, очевидно, просто использовали DataGridView для простоты из-за предварительной сборки ButtonColumn.

0 голосов
/ 11 июня 2011

Попробуйте определить высоту для ListView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...