【问题标题】:catch enter in ms-access and treeview在 ms-access 和 treeview 中捕获输入
【发布时间】:2011-08-12 21:54:00
【问题描述】:

我正在尝试在 Microsoft TreeView 控件中捕获 [ENTER]。

此代码在任何普通键上都可以正常运行,但不能输入。

Private Sub xProductTreeview_KeyPress(KeyAscii As Integer)
  'do something treeview can understand..
  Application.Quit
End Sub

现在按键不会在 ENTER 上触发,所以尝试 KeyDown, 在http://www.pcreview.co.uk/forums/here-syntax-treeview-keydown-t3810664.html 的帮助下 官方声明不正确,以下代码有效:

Private Sub xProductTreeview_KeyDown(KeyCode As Integer, ByVal Shift As Integer)
  'do something treeview can understand..
  If KeyCode = 32 Then Application.Quit
  'Still, KeyCode=13 doesn't trigger nothing..
End Sub

尝试将 access-form 中的 KeyPreivew 设置为 true。

编辑: 这确实有效..

将 KeyPreview 设置为 true 并且:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 13 Then MsgBox xProductTreeview.SelectedItem.Text
End Sub

唯一剩下的就是返回值是label-value,它可能是非唯一的,那么如何获取节点的Key而不是Text呢??

问候, //t

【问题讨论】:

  • 啊,它起作用了,然后: Dim nodSelected As MSComctlLib.Node Set nodSelected = Me.xProductTreeview.SelectedItem MsgBox nodSelected.Key

标签: ms-access vba treeview


【解决方案1】:

keyPreview=true 和

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 13 Then
    Dim nodSelected As MSComctlLib.Node
    Set nodSelected = Me.xProductTreeview.SelectedItem
    MsgBox nodSelected.Key
  end if
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2023-03-30
    相关资源
    最近更新 更多