有没有办法让它成为你不必加倍你的&'s以使Delphi列表框不能将它们注册为热键?
我们有一个药物名称列表,我们在ListBox中填充,其中一些药物和“A& D Ointment”中的药物一样,“A _D软膏”有点愚蠢“出现所以我们加倍了&&'s来使它成为”A& D软膏“唯一的问题是,当我们这样做时,我们不能把列表框中的文字用于任何有用的文本而不重新转换文本。
我们必须更加方便地完全关闭热键,我似乎无法找到与IDE相关的方法,但我确信有一些奇特的Windows消息可以覆盖它(希望如此)我不必覆盖基类)
我们使用以下方法覆盖DrawItem函数:
DrawText(List.Canvas.Handle, PChar(List.Items.Strings[Index]), -1, Rect, DT_VCENTER);
答案 0 :(得分:3)
如果发生这种情况,您可能没有使用默认的TListBox绘图功能,因为默认情况下它使用DT_NOPREFIX来绘制内容。
检查并确保您没有覆盖DrawItem函数以查看是否使用没有DT_NOPREFIX的DrawText。如果您使用DT_NOPREFIX,那么您的文本将保持不变。