我有一個listview與複選框。VB.Net ListView滾動條和ListView.ItemChecked問題
我有幾個問題我似乎沒有能夠找到答案:
我似乎並沒有能夠找到任何屬性來改變從垂直滾動條從左到右?所有其他滾動條默認爲正確 - 但不是?
我想在ItemChecked事件觸發時更新標籤,以指示已檢查的列表中的項目數。我知道ItemChecked事件在列表填充時觸發,但我已經在應用程序的其他地方通過設置'DoEvents'變量爲false,直到填充表單並在此類事件發生時檢查該變量的狀態燒製 - 像這樣的:
Private Sub SpecificUsers_ItemChecked(ByVal sender as System.Object, ByVal e as System.Windows.Forms.ItemCheckedEventArgs) Handles lstSpecificUsers.ItemChecked If DoEvents Then ' Set standard string Dim s as String = "You have currently selected " & lstSpecificUsers.CheckedItems.Count & " users" If lstSpecificUsers.CheckedItems.Count = 1 Then ' if only 1 selected, show user not users s = s.SubString(0, s.Length - 1) End If lblSpecificUsers.Text = s End If End Sub
問題是,列表視圖處於標籤;並且看起來該列表實際上並沒有物理填充,直到該選項卡被打開 - 並且因此DoEvents已經是真實的,這意味着它需要永久加載,因爲它執行上述代碼幾千次。
爲什麼listview不會填充直到加載標籤?
任何幫助將不勝感激!
LV中有多少物品大致在哪裏填充? – Plutonix
@Plutonix列表中約有1,500件商品。將數據從數據庫中收集到數據集中,然後填充列表視圖 - 所有這些都在form_load事件上 - 但只有當您第一次單擊包含列表視圖的選項卡時,數據實際上纔會填充(並且該項目檢查的事件在該點觸發每個項目) –
不,LV實際上是在添加項目時填充的(設置斷點並輪詢項目數量);只是某些東西不會畫第一次,直到它們顯示給用戶。對於滾動條,將RightToLeft道具更改爲FALSE。 – Plutonix