你代码都写死了给第三列和第四列赋值,当然就是这种效果了。
If e.Node.Level = 1 Then '如果单击的是第二层节点
Dim tr As Row
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
Dim nm As String
If e.Form.DropTable IsNot Nothing Then '如果下拉窗口是从表中打开
tr = e.Form.DropTable.Current '获取此表的当前行
nm = e.Form.DropTable.Name
Else '如果下拉窗口是通过DropdownBox打开
nm = e.Form.DropDownBox.BindingField '获取绑定的字段
nm = nm.Split(".")(0) '获取绑定的表名
tr = Tables(nm).Current '获取此表的当前行
End If
If nm = "表A"
tr("第二列") = dr("第四列")
Else
tr("第三列") = dr("第四列")
End If
e.Form.DropDownBox.Value = dr("第三列") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
e.Form.DropDownBox.CloseDropdown()
End If