有没有办法让你不必加倍你的 & 让 Delphi 列表框不将它们注册为热键?
我们在 ListBox 中填充了一个药物名称列表,其中一些药物中有 &'s,例如“A & D Ointment”,出现“A _D Ointment”有点愚蠢,所以我们加倍&& 使它成为“A & D Ointment”唯一的问题是,当我们这样做时,如果不重新转换文本,我们就不能将列表框中的文本用于任何有用的东西。
完全关闭热键对我们来说一定更方便,我似乎无法找到使用 IDE 的方法,但我确信有一些花哨的 Windows 消息可以覆盖它(希望我没有不必重写基类)
我们使用以下方法覆盖 DrawItem 函数:
DrawText(List.Canvas.Handle, PChar(List.Items.Strings[Index]), -1, Rect, DT_VCENTER);