1
Windows Forms 응용 프로그램에서 작업 중입니다. DropDownList의 DropDownStyle이있는 ComboBox가 있습니다. 또한 폼로드시 처음 채워진 ListBox가 있고 ComboBox의 SelectedValueChanged 이벤트를 사용하여 앞서 언급 한 ComboBox를 기반으로 선택됩니다. 내가 겪고있는 문제는 ComboBox에서 동일한 항목을 두 번 연속 선택하면 ListBox의 항목이 변경된다는 것입니다. 원하는 결과는이 상황에서 ListBox의 항목이 동일하게 유지된다는 것입니다. 어떻게 해결할 수 있을까요? 값이 currentItemIndex이ComboBox SelectedValueChanged 값을 인식하지 못했습니다.
Dim currentItemIndex as Integer = -1
으로 글로벌 폼 수준에서 선언 된 같은
Private Sub cboPlanets_SelectedValueChanged(sender As Object, ......
Dim idx As Integer = cboPlanets.SelectedIndex
if idx <> currentItemIndex Then
currentItemIndex = idx
PopulateItemList()
End If
End Sub
경우
Option Strict On
Option Explicit On
Option Infer Off
Public Class frmGameScreen
Private Sub btnQuit_Click(sender As System.Object, e As System.EventArgs) Handles btnQuit.Click
Me.Close()
End Sub
Private Sub frmGameScreen_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim intAstrometricProbes As Integer
Dim intCasesOfMedicalSupplies As Integer
Dim intCommunicationsArrays As Integer
Dim intProvisions As Integer
Dim intSelfSealingStemBolts As Integer
Dim intShieldGenerators As Integer
Dim intWarpCoils As Integer
cboPlanets.SelectedItem = "Ferenginar"
lblItemPrice.Text = ""
PopulateItemList()
End Sub
Private Sub lstItems_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles lstItems.SelectedValueChanged
'lblItemPrice.Text = lstItems.Text
lblItemPrice.Text = CStr(cboPlanets.SelectedIndex)
End Sub
Private Sub cboPlanets_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles cboPlanets.SelectedValueChanged
PopulateItemList()
End Sub
Sub PopulateItemList()
Dim rndRandomNum As New Random
Dim intDisplay As Integer
lstItems.Items.Clear()
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Astrometric Probes")
End If
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Cases of Medical Supplies")
End If
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Communications Arrays")
End If
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Provisions")
End If
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Self-Sealing Stem Bolts")
End If
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Shield Generators")
End If
intDisplay = rndRandomNum.Next(1, 11)
If intDisplay > 5 Then
lstItems.Items.Add("Warp Coils")
End If
End Sub
End Class