3

我正在尝试将一些项目添加到字典对象(数据库 ID 和值对)中,以让用户在提交之前确认他们的选择。我有以下代码部分,它将一个项目添加到字典中。添加后,我循环遍历 Dictionary.Keys 并将每个键/值打印到列表框以供用户查看。我的字典对象是我的表单上的一个公共变量,并在 Form_Load 事件中设置。

Dim PickListID As Integer
If txtPercentOfStream <> "" Then
    PickListID = cboCoalTypes
    If Not CoalsInStreamDic.Exists(PickListID) Then
        CoalsInStreamDic.Add PickListID, txtPercentOfStream
    End If
Else
    Exit Sub
End If

奇怪的是,每当我添加一个新的键/值对时,新键的值就会变成除新键之外所有现有键的值。

我在与字典交互之前和之后运行这个小块

Dim key As Variant
For Each key In CoalsInStreamDic.Keys
    Debug.Print key & "::" & CoalsInStreamDic.item(key)
Next key
Debug.Print

即用户单击按钮,首先想到的是上面的块,以确认旧键具有其原始值,但它们没有。它们已经被“新值”所取代。之后运行该块可以确认这一点。

为什么会这样?

4

1 回答 1

3

问题是您没有添加 TextBox 的文本,而是添加了 TextBox

如果您将代码更改为以下内容,它应该可以工作

If txtPercentOfStream <> "" Then
    Dim PickListID As Integer, PercentOfStream As Integer
    PercentOfStream = txtPercentOfStream
    PickListID = cboCoalTypes
    If Not CoalsInStreamDic.Exists(PickListID) Then
        CoalsInStreamDic.Add PickListID, PercentOfStream
    End If
Else
    Exit Sub
End If
于 2012-07-10T17:53:08.430 回答