私は Windows フォーム アプリケーションに取り組んでいます。DropDownList の DropDownStyle を持つ ComboBox があります。また、フォームの読み込み時に最初に入力される ListBox もあり、次に選択されたものに基づいて、ComboBox の SelectedValueChanged イベントを使用して前述の ComboBox になります。私が抱えている問題は、ComboBox で同じ項目を 2 回続けて選択すると、ListBox の項目が変化することです。望ましい結果は、この状況で ListBox 内の項目が同じままであることです。どうすればこれを修正できますか?
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