0

さて、大学の課題の一部を手伝ってもらいましたが、あと 1 つだけ、データを表示する必要があります。問題の割り当てでは、ユーザーは ID 番号で製品を検索し、その説明、日次、週次、月次のレンタル料金、および在庫数量を、フォームに既にある TextBox コントロールに表示できます。別のクラスの辞書。これは編集目的でもあります (以下の注を参照)。さらに、ID 変数を ComboBox のコレクションに追加する際に問題が発生しています。これは、Dictionary を読み込んでアイテムを追加するときに発生します。これは簡単な修正であると確信していますが、思い出すのに助けが必要です。何だ、それだけだ。

表示ボタンのコードを含む frmMain のコードを次に示します (見た目が荒いので気にしないでください)。

Imports System.IO

Public Class frmMain

Dim dItem As New Inventory
Dim filePath = ofdOpenFile.FileName

Public Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click

    Me.Close()
End Sub

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
    Dim ID As String = cboID.Text
    Dim Desc As String = txtDescription.Text
    Dim DRate As Double = txtDaily.Text
    Dim WRate As Double = txtWeekly.Text
    Dim MRate As Double = txtMonthly.Text
    Dim Quantity As Integer = txtQuantity.Text

    dItem.addItem(ID, Desc, DRate, WRate, MRate, Quantity)
End Sub

Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click
    Dim ID As String = cboID.Text

    dItem.removeItem(ID)
End Sub

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
    ' Display data should go here
End Sub

Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If ofdOpenFile.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim FileInfo As New InventoryFile
        FileInfo.RFile(filePath, dItem)
        cboID.DataSource = dItem.returnKeys()
    End If
  End Sub
End Class

私の辞書クラスのコードは次のとおりです。

Public Class Inventory

Public ItemInventory As New Dictionary(Of String, Item)

Public Function iItem(ByVal key As String) As Item
    Return ItemInventory(key)
End Function

Public Sub addItem(ByVal item As String, ByVal Desc As String, ByVal DRate As Double, ByVal WRate As Double, _
                   ByVal MRate As Double, ByVal Quantity As Integer)
    With ItemInventory
        .Add(item, New Item(item, Desc, DRate, WRate, MRate, Quantity))
    End With
End Sub

Public Sub removeItem(ByVal item As String)

    With ItemInventory
        .Remove(item)
    End With
End Sub

Public Function returnKeys() As String()
    Dim Keys() As String

    With ItemInventory
        Keys = .Keys.ToList.ToArray
    End With

    Return Keys
  End Function
End Class

そうあるべきだと思います。必要に応じて他のクラスを追加できますが、それ以外の場合、ディクショナリにはキーと、表示する必要がある追加データを含むアイテム クラスへの参照である「アイテム」があります (一連の変数があります)。すべてが「アイテム」クラスにあるものに関して答える必要がある私の「追加」コード)。エントリを表示するには、辞書をどのように正確に参照すればよいですか?

4

1 に答える 1