FIX: 在清單檢視執行 ItemClick 事件兩次以 LabelEdit 設定為手動

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

257495
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
當您按一下 [清單檢視 控制項中的項目上時, ItemClick 事件 清單檢視 控制項的執行兩次。
發生的原因
這個問題被因為順便一提在哪個手動標籤編輯會執行。當您選取的項目時,ItemClick 事件引發通常,但是,在另外 ListView 控制項可讓內建計時器,其延遲的值等於按兩下滑鼠的持續時間。當經過此延遲時,觸發計時器的事件,並此計時器的程式碼決定 ListView 控制項是否應該輸入標籤編輯模式。如果中止標籤編輯其中永遠是大小寫的手動標籤編輯,然後清除且 re-selected 選取範圍。這個 re-selection 觸發第二個 ItemClick

您可能會造成兩種方式之一發生這個問題。第一種是將 清單檢視] 的 [LabelEdit] 屬性設定為 lvwManual (如同在本文 < 其他相關資訊 > 一節中的 [範例] 程式碼)。重現此行為的替代方法就是將 LabelEdit] 屬性設定為 lvwAutomatic 並設定 BeforeLabelEdit 事件的 清單檢視 中的 [取消等設為 True
解決方案
如果要解決這個問題,安裝最新的 Service Pack,Visual Studio 6.0。

如果安裝 Service Pack 不一個選項,或您執行版本的 Visual Basic 6.0 版以前將 清單檢視 控制項的該 LabelEdit 屬性設定至 lvwAutomatic],並不設定 為 True 的 [取消] 等 [BeforeLabelEdit 事件的 清單檢視 中。
狀況說明
Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的有錯誤。這個 Bug 已經在最新的 Service Pack,Visual Studio 6.0 中獲得修正。

取得更多資訊有關 Visual Studio Service Pack 按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
194022資訊: Visual Studio 6.0 服務封裝什麼、 何處,為何

194295HOWTO: 告訴 Visual Studio Service Pack 已安裝
如果要下載最新的 Visual Studio Service Pack,請造訪下列 Microsoft 網站:
其他相關資訊

重製行為的步驟

  1. 建立新的 標準 EXE 專案在 Visual Basic 中時。預設會建立 Form1。
  2. 從 [專案] 功能表選擇 [元件],選取 Microsoft Windows 通用控制項],然後再按一下 [[確定]
  3. 清單檢視 控制項加入至 Form1。
  4. 下列程式碼貼入 Form1 的程式碼視窗:
    Option ExplicitPrivate Sub Form_Load()    Dim Col As ColumnHeader    Dim itmAdd As ListItem        ' Set the report's view    ListView1.View = lvwReport        ' Add a column to the listview    Set Col = ListView1.ColumnHeaders.Add(Text:="Items")        ' Set the label editing to manual    ListView1.LabelEdit = lvwManual        ' Add some sample data    Set itmAdd = ListView1.ListItems.Add(Text:="one")    Set itmAdd = ListView1.ListItems.Add(Text:="two")End SubPrivate Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)    Debug.Print ListView1.SelectedItem.TextEnd Sub					
  5. 執行範例。
  6. 按一下 清單檢視 控制項中的項目二 」。這應該產生項目的文字兩"被顯示在偵錯/立即視窗。
  7. 請稍等一下,然後再按一次"2"項目。這會導致 「 二 」 正在偵錯/即時視窗中顯示兩次項目的文字。
sp4

警告:本文已自動翻譯

內容

文章識別碼:257495 - 最後檢閱時間:02/23/2014 22:10:10 - 修訂: 2.2

  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • kbnosurvey kbarchive kbmt kbactivexevents kbbug kbctrl kbfix kblistview kbvs600sp4fix kbvs600sp5fix KB257495 KbMtzh
意見反應