FIX: ListView 수동 LabelEdit 집합 함께 두 번 ItemClick 이벤트 실행

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

257495
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
현상
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정보: Visual Studio 6.0 서비스 팩, 내용, 위치, 이유

194295HOWTO: Visual Studio 서비스 팩 설치되었는지 확인합니다
최신 Visual Studio 서비스 팩을 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
추가 정보

문제를 재현하기 위한 단계

  1. Visual Basic에서 표준 EXE 프로젝트를 새로 만듭니다. 기본적으로 Form1이 만들어집니다.
  2. 프로젝트 메뉴에서 구성 요소 선택, Microsoft Windows 공용 컨트롤 을 선택하고 확인 을 클릭하십시오.
  3. ListView 컨트롤을 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. ListView 컨트롤은 "2" 항목을 클릭하십시오. "두 디버그/직접 실행 창에 표시되는 항목의 텍스트를 따라서 합니다.
  7. 잠시 기다린 다음 항목을 "맑아"을 다시 클릭하십시오. 그 결과 "맑아" 디버그/직접 실행 창에서 두 번 이상 표시되는 항목의 텍스트입니다.
sp4

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 257495 - 마지막 검토: 02/23/2014 14:02:51 - 수정: 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 KbMtko
피드백