vb.net:如何检索编辑后的combobox元素的索引?

您好我正在使用visual basic编写一个程序,将编辑数据库的内容。 用户可以input他们想要更改的内容,然后程序将在数据库中覆盖此内容。 除了编辑combobox的内容之外,这一切都可以正常工作。 当我尝试然后检索combobox中编辑的索引时,我得到-1。

如果这没有意义,那么我的代码如下:

Sub DatabaseWriteSpecific(array, filePath, row) Dim objExcel As New Excel.Application Dim objWorkbook As Excel.Workbook Dim objSheet As Excel.Worksheet objWorkbook = objExcel.Workbooks.Open(filePath) 'opens specified database objSheet = objWorkbook.Worksheets(1) For i As Integer = 1 To array.length objSheet.Cells(row, i).value = array(i - 1) 'adds each user input to database Next objWorkbook.Save() 'saves these changes objWorkbook.Close() objExcel.Quit() End Sub Private Sub editButton_Click(sender As Object, e As EventArgs) Handles editButton.Click Dim userMsg = MsgBox("Are you sure you want to edit this quote?", MsgBoxStyle.YesNo, "Confirm") If userMsg = 6 Then 'if answer is yes then quote will be edited, else nothing happens Dim quote = quoteCombo.Text Dim inputBoxes = {quote, userAct.Text, userScene.Text, userTheme.Text, userSaidBy.Text, userSaidTo.Text} Dim row = quoteCombo.SelectedIndex() + 2 testBox.Text = row DatabaseWriteSpecific(inputBoxes, "C:\Users\lauel\Documents\database\bankOfQuotes.xlsx", row) comboBoxDisplay() MessageBox.Show("Your quote has been edited.") End If End Sub 

问题行是Dim row = quoteCombo.SelectedIndex() + 2如果comboboxselect被编辑,它返回-1 + 2。如果任何其他框被编辑它工作正常。 有没有办法来解决这个问题,或者你会build议以不同的方式写入数据库? 谢谢,对不起,如果我已经很好地解释了这一点。

从概述的angular度来看,你似乎在尝试使用combobox有两个目的,当恕我直言,它应该用于一个目的,显示一个或多个值。 我认为便于编辑的combobox行为仅供用户input(并匹配)其中一个可用值。

你的目标虽然是可信的。 您想提供一个工具来编辑combobox中可用的值。 我相信正确的做法是将function分开。 将所选值置于可编辑文本框中,提供保存编辑值的方法(例如“保存”button),然后使用新的更新值列表更新combobox。