我在两个应用程序中的WinForms ListBox
中遇到了一些非常奇怪的行为。它们都有一些其他控件(TableLayoutPanel
s,Button
等等。)
两个应用程序都会处理Ctrl + C键击以将ListBox
的所选项目复制到剪贴板。但是,当我按下Ctrl + C时,当前ListBox
的所选索引向下移动一个,或者如果选择了最后一个项目,则选择将回绕到第一个项目。在我的KeyDown
处理程序完成其工作后,会发生这种情况。
这很奇怪,因为任何一个应用程序中都没有会导致此行为的代码。我甚至不知道要按什么键来使选择前进或包裹那样。
我一直在尝试在示例程序中重现此行为,但到目前为止,我还无法弄清楚这两个应用程序的共同之处在于它们是如何表现的。如果我弄清楚了,我会相应地更新这个问题。
我比较了具有此问题的应用程序与不具有此问题的应用程序之间的Windows消息活动。我发现了一条导致它的特定消息:
msg=0x2111 (WM_REFLECT + WM_COMMAND)
hwnd=0x211e2
wparam=0x111e2
lparam=0x211e2
result=0x0
以下是每个程序中按Ctrl + C的完整消息日志:
我可以防止这个神秘信息被处理,但它是什么,以及是什么导致它被发送?我很难过。
答案 0 :(得分:-2)
列表框管理按键,因此当新选择的项目以" c"
开头时