代码之家  ›  专栏  ›  技术社区  ›  PA.

如何在Delphi中设置TComboBox的listbox部分的tabwidth

  •  0
  • PA.  · 技术社区  · 15 年前

    通过设置TListbox的TabWidth属性,可以很容易地在listbox中实现多列效果。例如 http://delphi.about.com/cs/adptips2000/a/bltip1200_3.htm

    2 回复  |  直到 15 年前
        1
  •  1
  •   Community CDub    7 年前

    在对的评论中 this answer 建议您在列表框中画出您所说的项目:

    我想知道为什么我必须这样做,当所需的功能已经存在于一个列表框

    组合框实际上由三个本机子窗口组成:组合框本身、嵌入的编辑和列表框。你可以用 GetComboBoxInfo() 函数来填充 COMBOBOXINFO 结构(即 TComboBoxInfo 记录),并返回3 HWND 其中的元素。这样您就可以改变列表框的外观和行为。原则上

    要使列表框使用制表位,它需要 LBS_USETABSTOPS CreateWindowEx() 调用组合框。AFAICS这只能通过钩住 CreateWindowEx() 调用本身,标识创建列表框的内部调用,并更改传递的样式。这意味着在运行时修改代码,而不是在可执行文件中,而是在Windows DLL中。

    所有者绘制列表项看起来要容易得多。

        2
  •  0
  •   anon anon    15 年前

    据我所知,没有比 TabWidth 在这里,但你可以覆盖 Paint