DetailPage-MSS-KB

기술 자료

기술 자료: 257495 - 마지막 검토: 2007년 8월 7일 화요일 - 수정: 2.2

 

이 페이지에서

현상

ListView 컨트롤의 항목을 클릭할 때 ListView 컨트롤의 ItemClick 이벤트가 두 번 실행합니다.

원인

이 문제는 어떤 수동 레이블 편집 구현됩니다 따라 끝까지 때문에 발생합니다. 하지만 ItemClick 이벤트는 일반적으로 이벤트가 항목을 선택할 때 뿐만 아니라, ListView 컨트롤을 두 번 기간은 동일한 지연입니다 해당 기본 제공 타이머가 있습니다. 이 지연은 경과하면 있는 타이머 이벤트가 트리거되는 및 ListView 컨트롤은 편집 모드에서 레이블을 입력해도 이 타이머 코드 결정합니다. 레이블 편집이 중단되면 수동 레이블 편집, 대/소문자를 항상 것은 다음 선택 영역을 취소한 및 re-selected. 두 번째 ItemClick 이 re-selection이 트리거합니다.

두 가지 방법 중 하나로 발생할 이 문제가 발생할 수 있습니다. 첫 번째 lvwManual 이 문서의 "추가 정보" 절의 예제 코드를) 에서와 ListViewLabelEdit 속성을 설정할 수 있습니다. 이 문제를 재현하는 다른 방법을 위해 lvwAutomaticLabelEdit 속성을 설정하고 ListViewBeforeLabelEdit 이벤트에서 Cancel = True 로 설정할 것입니다.

해결 방법

이 문제를 해결하려면 Visual Studio 6 .0용 최신 서비스 팩을 설치하십시오.

서비스 팩 설치 옵션이 있지 않거나 Visual Basic 버전 6.0 이전 버전을 실행하는 경우 ListView 컨트롤의 LabelEdit 속성을 위해 lvwAutomatic 설정하고 Cancel = True로 설정하지 마십시오 있는 ListViewBeforeLabelEdit 이벤트 에서.

현재 상태

Microsoft는 이 문서의 시작 부분에 나열한 제품에서 문제를 확인했습니다. 이 버그는 Visual Studio 6 .0용 최신 서비스 팩에서 수정되었습니다.

Visual Studio 서비스 팩에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
194022  (http://support.microsoft.com/kb/194022/EN-US/ ) 정보: Visual Studio 6.0 서비스 팩, 내용, 위치, 이유

194295  (http://support.microsoft.com/kb/194295/EN-US/ ) HOWTO: Visual Studio 서비스 팩 설치되었는지 확인합니다
최신 Visual Studio 서비스 팩을 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/vstudio/Aa718353.aspx (http://msdn2.microsoft.com/en-us/vstudio/Aa718353.aspx)

추가 정보

문제를 재현하기 위한 단계

  1. Visual Basic에서 표준 EXE 프로젝트를 새로 만듭니다. 기본적으로 Form1이 만들어집니다.
  2. 프로젝트 메뉴에서 구성 요소 선택, Microsoft Windows 공용 컨트롤 을 선택하고 확인 을 클릭하십시오.
  3. ListView 컨트롤을 Form1에 추가하십시오.
  4. Form1의 코드 창에 다음 코드를 붙여 넣습니다.
    Option Explicit
    
    Private 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 Sub
    
    Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
        Debug.Print ListView1.SelectedItem.Text
    End Sub
    					
  5. 샘플을 실행하십시오.
  6. ListView 컨트롤은 "2" 항목을 클릭하십시오. "두 디버그/직접 실행 창에 표시되는 항목의 텍스트를 따라서 합니다.
  7. 잠시 기다린 다음 항목을 "맑아"을 다시 클릭하십시오. 그 결과 "맑아" 디버그/직접 실행 창에서 두 번 이상 표시되는 항목의 텍스트입니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • 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
키워드: 
kbmt kbactivexevents kbbug kbctrl kbfix kblistview kbvs600sp4fix kbvs600sp5fix KB257495 KbMtko
기계 번역된 문서기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store