我已经尝试将TreeView子类化以捕获它们的键盘消息,但它不会在LabelEdit期间捕获任何事件,可能是因为控件覆盖了单独的标签。我有办法在那个标签上捕捉事件吗?
Protected Overrides Sub OnNotifyMessage(m As Windows.Forms.Message)
If LabelEdit = True Then
Select Case m.Msg
Case &H100 'wm_keyup
format(Nodes.Item(0).Text)
End Select
End If
End Sub
好的,基于汉斯的回答,我得到了这个。
Dim editControlHandle = SendMessage(templates.Handle, &H110F, _
IntPtr.Zero, IntPtr.Zero)
If editControlHandle <> IntPtr.Zero Then
Dim sz As Int32 = SendMessage(editControlHandle, &HE, 0, 0).ToInt32()
If sz > 0 Then
Dim title As New StringBuilder(sz + 1)
SendMessage(editControlHandle, &HD, title.Capacity, title)
End If
但是如何从那里拦截WM_KEYUP消息呢?我可以删除OnNoityMessage或WndProc,但是如何调整要使用的编辑器处理程序的消息处理? 结束如果