2011-06-10 34 views
0

我目前在一個表單上安置了ListView,然後通過代碼隱藏向此ListView添加按鈕。除了這樣一個事實:一旦有太多的項目添加到列表中,它不會創建一個垂直滾動條?我可以簡單地添加儘可能多的按鈕,而不需要創建一個按鈕?下面是將按鈕添加到列表中的代碼:VB:當添加太多項目時,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

+0

我已經縮小到事實上,我添加控件到視圖,而不是添加一個項目集合。嘗試將按鈕添加到集合中以查看是否可能。 – 2011-06-10 22:50:44

回答

0

我想我可以在這裏回答我自己的問題。被添加到ListView的按鈕(控件)沒有被添加到視圖的集合中,而是直接添加到控件中。這是我遇到困難的地方。我假設只有當視圖的集合子代增長超過某個點時,纔會獲得滾動條,因爲每次添加一個Button時,我只是向該集合添加了一些東西,並且它給了我吧!由於預編譯ButtonColumn,不喜歡這種解決方案,因此顯然只是簡單地使用了DataGridView

0

嘗試定義ListView的高度。

+0

標題說TextView,但我認爲你的意思是ListView。 – Louis 2011-06-10 22:49:28

+0

我確實在早期的方法中靜態定義了高度。自從我將視圖添加到視圖而不是向該集合添加項目之後,我就縮小了它的範圍。 – 2011-06-10 22:50:19

+0

謝謝,是的。後來我轉移到了DataGridView,讓我的生活變得更輕鬆。甚至不需要具有cellClick功能的按鈕。感謝您的嘗試,但非常感謝。 – 2011-06-11 01:28:09

相關問題