(对不起,如果标题不够清楚)
在visual studio 2013中我在ComdoBox键中编写了下面的代码
组合框数据源设置为odbc数据表
我尝试使用自动填充文件从组合框中进行组合操作。
Dim PrK As Boolean = e.KeyCode = Keys.Back Or Keys.End Or Keys.Home _
Or Keys.PageDown Or Keys.PageUp Or Keys.Delete Or Keys.Up Or Keys.Down _
Or Keys.Right Or Keys.Left
If PrK = True Then
Exit Sub
End If
Dim index As Integer
Dim Oldtext = cmbSubProName.Text
index = cmbSubProName.FindString(Oldtext)
If index > -1 Then
Dim res As String
res = cmbSubProName.Items(index).ToString
cmbSubProName.SelectedIndex = index
cmbSubProName.SelectionStart = Oldtext.Length
cmbSubProName.SelectionLength = cmbSubProName.Text.Length
End If
当运行项目并在组合框中按任意键(v,y或任何其他字符)时,我发现Prk通常是真的!!
我也试过下面的代码和相同的
if e.KeyCode = Keys.Back Or Keys.End Or Keys.Home _
Or Keys.PageDown Or Keys.PageUp Or Keys.Delete Or Keys.Up Or Keys.Down _
Or Keys.Right Or Keys.Left then
exit sub
end if
答案 0 :(得分:1)
作为一般规则,True
被视为任何非零值,False
为零。
您Prk
的值设置不正确 - 您对语法感到困惑。你真正想要的是:
Dim PrK As Boolean = e.KeyCode = Keys.Back Or _
e.KeyCode = Keys.End Or _
e.KeyCode = Keys.Home Or _
e.KeyCode = Keys.PageDown Or _
e.KeyCode = Keys.PageUp Or _
e.KeyCode = Keys.Delete Or _
e.KeyCode = Keys.Up Or _
e.KeyCode = Keys.Down Or _
e.KeyCode = Keys.Right Or _
e.KeyCode = Keys.Left
您编写的语法实际上是对所有这些关键枚举的值进行二进制 - Or
,这些值始终为非零值。