1

ListBox在两个应用程序的 WinForms 中遇到了一些非常奇怪的行为。它们都有一些其他控件(TableLayoutPanels、Buttons 等)

两个应用程序都处理 Ctrl+C 击键以将所选项目复制ListBox到剪贴板。但是,当我按下 Ctrl+C 时,当前的选定索引ListBox会向下移动一个,或者如果选择了最后一项,则选择会环绕到第一项。这发生我的KeyDown处理程序完成工作之后。

这很奇怪,因为这两个应用程序中都没有会导致这种行为的代码。我什至不知道要按什么键来使选择前进或像那样换行。

我一直试图在示例程序中重现这种行为,但到目前为止,我还无法弄清楚这两个应用程序的共同点是什么使它们以这种方式运行。如果我弄清楚了,我会相应地更新这个问题。

我比较了有此问题的应用程序和没有此问题的应用程序之间的 Windows 消息活动。我发现了一条导致它的特定消息:

msg=0x2111 (WM_REFLECT + WM_COMMAND)
hwnd=0x211e2
wparam=0x111e2
lparam=0x211e2
result=0x0

以下是在每个程序中按 Ctrl+C 的完整消息日志:

我可以阻止处理这条神秘消息,但它是什么,是什么导致它被发送?我难住了。

4

1 回答 1

-2

列表框管理按键,所以当新选择的项目以“c”开头时

于 2013-03-20T17:53:15.483 回答