當 的Selected
屬性在Items
集合ListView
的項目上設置爲true時,選擇計數.SelectedItems.Count
不會更改。.NET:ListView布魯斯?
實施例:
lvPept.SelectedItems.Clear()
lvPept.Items(6).Selected = True
Dim newLen As Integer = lvPept.SelectedItems.Count
lvPept
是ListView
並且包含10個元素。
newLen
預期爲1,但爲0時,出現問題時 和SelectedIndexChanged
事件不解僱。使用 其他數據集的預期值爲1,並觸發SelectedIndexChanged事件。
在什麼情況下或以什麼狀態可以lvPept
在 發生這種情況? BeginUpdate
()/ EndUpdate
()是不是 與lvPept
一起使用。
背景:
我試圖追查問題我 開源.NET應用程序的用戶之一,MSQuant (http://msquant.sourceforge.net/),遇到。
我已經用完了這個 問題的原因。
的問題是重複性好,我可以重現它在我 開發環境Visual Studio 2008中這似乎是 獨立的Windows版本(在Windows 2000/Windows XP中的32位/ Windows XP 64位), .NET運行時版本(2.0/3.5)和Visual Studio版本(2005/2008)。
其他上下文:該應用程序是用VB.NET編寫的,在 C#中,它是一個Windows窗體應用程序。 類的源代碼是http://shrinkster.com/14bg。 ListView
所在的 表單類最初由支持.NET的最早的正式版本的Visual Studio之一生成爲 。
更新1:因爲我有一個工作案例和一個破案I 比較了lvPept
的內容。除了屬性「Handle」,「MousePosition」和「TopItem」 (因爲它是具有不同肽的不同蛋白質)之外唯一的區別 屬性 「已創建」。破案是假的。有意義的 部分構建的對象無法正常工作,但它怎麼會發生?
更新2:財產「創造」被錯誤地證明是一個 好主角。我認爲真正的問題是在 建設時間,而不是在窗體加載時間。我現在 添加斷言財產「創建」,重構和改變 所有的操作在窗體加載的時間發生。它現在按預期工作 ,並且出現問題的用戶已獲得該應用程序的新版本 。
因爲應用程序的 成立以來,老壞的方式已經在那裏於2002年。我只是想知道,如果有專家能對爲什麼它的工作時間99.9%,只有 未能在少數情況下和reproducably 投光所以。
我現在試着添加lsPept.Select()。它沒有任何區別。 – 2009-02-11 03:49:39