我有一个 ComboBox“我将其命名为 Combo”,它加载在第二列的 C1FlexGrid“我将其命名为 fgMain”中,我想处理键盘以使该组合框上的按 Enter 键可供用户使用。
我使用此代码创建组合框并使用数据填充它:
fgMain.Cols(2).Editor = Combo
Combo.DrawMode = DrawMode.Normal
Dim dap As New OleDbDataAdapter()
Dim dat As New DataTable()
dap.SelectCommand = New OleDbCommand("SELECT EmpInfo.ManualId, EmpInfo.Name FROM EmpInfo;", conn)
dap.Fill(dat)
Combo.DataSource = dat
Combo.DisplayMember = "Name"
Combo.ValueMember = "ManualId"
我使用此代码来处理在 c1flexgrid 的第 2 列中的任何单元格上按 enter 它只处理在第 2 列中的任何单元格上按的第一个 enter 并使组合框的下拉列表出现:
Private Sub fgMain_KeyDown(sender As Object, e As KeyEventArgs) Handles fgMain.KeyDown
Select Case e.KeyCode
Case Keys.Enter
Select Case fgMain.Selection.c1
Case 2
fgMain.StartEditing(fgMain.Selection.BottomRow, 2)
e.SuppressKeyPress = True
e.Handled = True
End Select
End Select
现在我需要处理如果用户选择了他想要的项目,那么他将第二次按回车...我的问题是当我按第二次回车选择所选项目时,它出现在“ fgMain(e.row, 2 )" 仅持续不到一秒钟,然后整行消失并且 fgMain(e.row,2) 变为空