【发布时间】:2026-02-05 08:20:10
【问题描述】:
我的应用程序中有一个组合框,其中填充了来自 SQL SERVER 的十几个项目。我目前正在尝试让用户能够在组合框中输入新值并将其保存到 SQL SERVER 中的表中。我正在寻找类似于 DropDown 和 DropDownList 的 DropDownStyle 的东西。基本上我希望让用户在组合框中输入,但是如果值不存在,我希望能够给他们一个保存它的选项(可能是失去焦点)。我想知道做这种事情的好方法是什么。
在失去焦点时,我应该基本上浏览当前下拉列表中的每个项目并根据输入的值检查它吗?
编辑:
Sql="SELECT IDvalue, TextName from TblReference"
Dim objconn As New SqlConnection
objconn = New SqlConnection(conn)
objconn.Open()
Dim da As New SqlDataAdapter(sql, objconn)
Dim ds As New DataSet
da.Fill(ds, "Name")
If ds.Tables("Name").Rows.Count > 0 Then
Dim dr As DataRow = ds.Tables("Name ").NewRow
ds.Tables("Name").Rows.InsertAt(dr, 0)
With c
.DataSource = ds.Tables("Name")
.ValueMember = " IDvalue "
.DisplayMember = " TextName "
End With
End If
【问题讨论】:
-
请显示将项目添加到您的组合的代码。您是使用 DataSource 属性还是使用 Add 一项一项地添加项目?
-
@steve - 见编辑! C- 是传递给此函数的组合框名称
-
嗯,我认为您需要像 msdn.microsoft.com/en-us/library/office/ff845736.aspx 这样的东西,但据我所知,标准组合框没有内置功能。似乎唯一可能的方法是处理 Leave 事件并检查 ds.Tables("Names") 行中是否存在 ComboBox.Text
-
我一直这样做的方式是添加一个小的编辑按钮。当他们单击它时,会出现一个对话框,如果代码批准,它将添加到数据源中。 PS你的代码泄露了
-
@PLUTONIX 这就是我想做的,但上帝说不。在哪里?!它似乎工作正常