anythinging 发表于 2021-1-8 23:24:16

【已解决】Listview列标题的对齐小问题

本帖最后由 anythinging 于 2021-1-9 13:55 编辑

我想实现列标题是居中的,下面的表格可以自由设置对齐。
经测试发现,
1、先创建列标题,不设置齐方式(此时默认是居中的)
2、添加项目(此时默认是居中的)
3、用_GUICtrlListView_JustifyColumn调整对齐方式,此时已添加的项目仍保持居中,标题会变成刚刚设置的对方方式,但之后添加的项目都是新对齐方式
但也无法实现列表题居中,下面的项目左对齐。
想实现列标题是居中的,下面的项目是否可以根据需要随意调整对齐方式?
请教是否有可能的方法?

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $aInfo, $idListview

    GUICreate("调整 ListView 列", 400, 300)
    $idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState(@SW_SHOW)

    ; 添加列
    _GUICtrlListView_AddColumn($idListview, "列 1", 100)
    _GUICtrlListView_AddColumn($idListview, "列 2", 100,2)
    _GUICtrlListView_AddColumn($idListview, "列 3", 100,2)

      _GUICtrlListView_AddItem($idListview, 1)
      _GUICtrlListView_AddSubItem($idListview,0,1,1)
      _GUICtrlListView_AddSubItem($idListview,0,1,2)

      _GUICtrlListView_AddItem($idListview, 2)
      _GUICtrlListView_AddSubItem($idListview,1,2,1)
      _GUICtrlListView_AddSubItem($idListview,1,2,2)

;~         _GUICtrlListView_JustifyColumn($idListview,0,1)
;~         _GUICtrlListView_JustifyColumn($idListview,1,2)
      _GUICtrlListView_JustifyColumn($idListview,2,1)

      _GUICtrlListView_AddItem($idListview, 3)
      _GUICtrlListView_AddSubItem($idListview,2,3,1)
      _GUICtrlListView_AddSubItem($idListview,2,3,2)


    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>Example


afan 发表于 2021-1-9 13:38:55

anythinging 发表于 2021-1-9 07:44
感谢解答,我的意思是否有方法单独设置项目文本的对齐方式?

使用默认左对齐,标题居中就左补空格以达到伪居中效果。如果要精准就还要计算像素宽度及调整栏目宽度时实时调整。
这些属于不痛不痒的东西,没必要研究。先把学习方向放在完成一个成品上,再去打磨你觉得需要打磨的地方。

afan 发表于 2021-1-8 23:35:27

标题和项目文本的对齐方式是统一的,不然就乱了。
你如果看到的是保持之前的是因为没刷新,比如你点击一下项目就一样了。

anythinging 发表于 2021-1-9 07:44:21

感谢解答,我的意思是否有方法单独设置项目文本的对齐方式?
页: [1]
查看完整版本: 【已解决】Listview列标题的对齐小问题