有没有一种方法可以使您不必为了使Delphi列表框不将其注册为热键而对&进行双重处理?
我们在列表框中填充了一个药物名称列表,其中一些药物中带有&的药物,例如“ A&D软膏”,所以出现“ A _D软膏”有点愚蠢,所以我们加倍了使用&&使其成为“ A&D软膏”的唯一问题是,这样做时,我们无法在列表框中找到任何有用的信息,而无需重新转换文本。
对于我们来说,必须完全关闭热键,这似乎更加便利,我似乎无法找到与IDE关联的方法,但是我敢肯定,有些花哨的Windows消息会对此进行覆盖(希望我没有)不必重写基类)
我们使用以下方法覆盖DrawItem函数:
DrawText(List.Canvas.Handle, PChar(List.Items.Strings[Index]), -1, Rect, DT_VCENTER);
如果发生这种情况,您可能不使用默认的TListBox绘制函数,因为默认情况下,它使用DT_NOPREFIX进行绘制。
检查并确保您没有覆盖DrawItem函数,以查看是否使用不带DT_NOPREFIX的DrawText。如果您使用DT_NOPREFIX,则您的文本将保持不变。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句