BUG: SelectedIndex-1로 설정하면 ComboBox 지우지 않습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 327244 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

데이터 바인딩된 Windows Forms 콤보 상자 컨트롤의 SelectedIndex 속성 -1 = 설정할 때 선택한 항목을 ComboBox에서 않는 지우기 않습니다.

-1 값은 처음 속성에 할당될 때 ComboBox에서 인덱스 0 (영) 첫 번째 항목이 선택됩니다. -1 값은 번째로 속성에 할당될 때 이 할당을 취소합니다 ComboBox를 발생합니다.

원인

선택할 수 있도록 0 인덱스에 있는 항목을 처음으로 ComboBox SelectedIndex 속성을 -1로 할당할 때 발생합니다. 0 인덱스에 있는 항목을 이미 선택되어 있으면 ComboBox가 지웁니다.

해결 방법

이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오.
  • 방법 1
    다음 코드를 사용하여 두 번 행의 SelectedIndex 값 -1을 할당합니다:
    ComboBox1.SelectedIndex = -1
    ComboBox1.SelectedIndex = -1
    					
  • 방법 2
    값 -1을 뒤에 먼저 위해 SelectedIndex 0 값을 할당하려면 다음 코드를 사용하여:
    ComboBox1.SelectedIndex = 0
    ComboBox1.SelectedIndex = -1
    					
  • 방법 3
    다음 코드를 수동으로 데이터 원본에 바인딩하는 대신 컨트롤에 항목을 추가할 수 있습니다:
       Dim DataTbl As New DataTable("DemoTable")
       Dim DataCol1 As New DataColumn()
       Dim DataCol2 As New DataColumn()
       Dim DRow As DataRow
       Dim counter As Int32
    
       DataCol1.DataType = GetType(Int32)
       DataCol1.ColumnName = "ID"
       DataCol1.AutoIncrement = True
       DataTbl.Columns.Add(DataCol1)
       
       Dim Key(0) As DataColumn
       Key(0) = DataCol1
       DataTbl.PrimaryKey = Key
    
       DataCol2.DataType = GetType(String)
       DataCol2.ColumnName = "CompanyName"
       DataTbl.Columns.Add(DataCol2)
    
       For counter = 0 To 10
          DRow = DataTbl.NewRow()
          DRow("CompanyName") = "John " & counter.ToString
          DataTbl.Rows.Add(DRow)
       Next
    
       ' Populate the ComboBox manually
       Dim dr As DataRow
       For Each dr In DataTbl.Rows
          ComboBox1.Items.Add(dr("CompanyName"))
       Next
    					

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 제품에서 이 문제를 확인했습니다.

추가 정보

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

  1. 새 Windows 응용 프로그램을 만듭니다.
  2. ComboBox 및 Button 컨트롤을 폼에 추가하십시오.
  3. 폼을 두 번 클릭한 다음 폼의 Load 이벤트에 다음 코드를 입력합니다:
       Dim DataTbl As New DataTable("DemoTable")
       Dim DataCol1 As New DataColumn()
       Dim DataCol2 As New DataColumn()
       Dim DRow As DataRow
       Dim counter As Int32
    
       DataCol1.DataType = GetType(Int32)
       DataCol1.ColumnName = "ID"
       DataCol1.AutoIncrement = True
       DataTbl.Columns.Add(DataCol1)
       
       Dim Key(0) As DataColumn
       Key(0) = DataCol1
       DataTbl.PrimaryKey = Key
    
       DataCol2.DataType = GetType(String)
       DataCol2.ColumnName = "Name"
       DataTbl.Columns.Add(DataCol2)
    
       For counter = 0 To 10
          DRow = DataTbl.NewRow()
          DRow("Name") = "John " & counter.ToString
          DataTbl.Rows.Add(DRow)
       Next
    
       With ComboBox1
          .DataSource = DataTbl 
          .ValueMember = "ID"
          .DisplayMember = "Name"
       End With
    					
  4. 두 번 클릭하여 Click 이벤트에 대한 코드를 삽입 단추:
    ComboBox1.SelectedIndex = -1
    					
  5. 응용 프로그램을 실행하려면 F5 키를 누릅니다.
  6. 콤보 상자에 있는 첫 번째 이외의 항목을 선택하고 폼에 단추를 누릅니다.

    이제 첫 번째 항목을 ComboBox에서 나타납니다. 두 번째 단추를 누르면 ComboBox가 지웁니다.

속성

기술 자료: 327244 - 마지막 검토: 2006년 1월 12일 목요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Common Language Runtime (included with the .NET Framework) 1.0
키워드:?
kbmt kbbug kbnofix KB327244 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com