找回密码  加入

AUTOIT CN

搜索
查看: 863|回复: 53

[AU3基础] 想改变ListView表行的背景色和文本颜色,请大大们如何改?(已解决)

[复制链接]
发表于 2018-5-16 01:01:47 | 显示全部楼层 |阅读模式
本帖最后由 qsy666888 于 2018-5-18 09:42 编辑

我想改变ListView表60几分的行的背景色和文本颜色,请大大们如何改?论坛的方法基本都用了,没有改得了。请赐教

#Include <GuiListView.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
#Include <GuiListView.au3>
#Include <GuiTreeView.au3>
_SQLite_Startup ()
$SQLite_Data_Path = "SQLite.db"
$Tablekj = "kaojuan"
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("从数据库里获取姓名示例", 478, 412, 481, 210)
GUISetFont(11, 400, 0, "宋体")
Global $ListView1 = GUICtrlCreateListView("序号|姓名|语文", 8, 8, 458, 358)
KC_lvdraw()
Global $Button1 = GUICtrlCreateButton("查看分数", 293, 376, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
                Case $Button1
              msgbox(0,"70多分者", _get_N(7, 1))
                          msgbox(0,"分数个位数是5者", _get_N(5, 0))        
        EndSwitch
WEnd

Func _get_N($iNum, $iCode = 1)
        Local $aRow, $hQuery, $sMsg = ''
        Local $sQuery
        If $iCode Then 
            $sQuery = "'" & $iNum & "%'"
        Else
                $sQuery = "'%" & $iNum & "'"
        EndIf
        _SQLite_Open ($SQLite_Data_Path)
        _SQLite_Query(-1, "SELECT * FROM kaojuan WHERE 分数 LIKE " & $sQuery & ";", $hQuery)
        While _SQLite_FetchData($hQuery, $aRow) = $sqlite_ok
                $sMsg &= $aRow[0] & @TAB & $aRow[1] & @CRLF
        WEnd
        Return $sMsg 
EndFunc        

Func KC_lvdraw() 
        _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
        Local $Irval, $Aresult, $Irows, $Icolumns
        $Irval = _SQLite_GetTable2d( _SQLite_Open ($SQLite_Data_Path), "select rowid,* from kaojuan;", $Aresult, $Irows, $Icolumns)
                GUICtrlSetColor($ListView1, 0x000000)
        _ArrayDelete($aresult, 0)
       _GUICtrlListView_AddArray($ListView1, $Aresult)
          ; GUICtrlSetColor(_GUICtrlListView_GetItemParam($ListView1, 2), '0xFF0000') ;红色
          ;  GUICtrlSetColor(_GUICtrlListView_GetItemParam($ListView1, 5), '0xFF0000') ;红色
            GUICtrlSetBkColor(2,"0x00FF00")
        GUICtrlSetColor(2,"0xFF0000")           
EndFunc


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2018-5-16 01:24:36 | 显示全部楼层
本帖最后由 kk_lee69 于 2018-5-16 01:31 编辑

回复 1# qsy666888


    論壇的方法 你用了幾個 能不能 說一下你改了哪邊??
http://www.autoit3.cn/forum.php? ... ;highlight=listview
 楼主| 发表于 2018-5-16 11:44:17 | 显示全部楼层
回复 2# kk_lee69
谢谢kk大佬的回复,可能我没有阐述清楚,我是想的是程序自己判断,如果是60几分的,改变同一行背景色和文本的颜色
发表于 2018-5-16 11:52:36 | 显示全部楼层
回复 3# qsy666888

上面每一個都是這樣的 都是程序自己判斷  條件相同 就改變顏色
发表于 2018-5-16 13:28:47 | 显示全部楼层
回复  kk_lee69
谢谢kk大佬的回复,可能我没有阐述清楚,我是想的是程序自己判断,如果是60几分的,改变同 ...
qsy666888 发表于 2018-5-16 11:44


http://www.autoit3.cn/forum.php? ... 7%C9%AB%EE%81%C9%AB
<listview指定欄位無法更改底色顏色[已解決]>
 楼主| 发表于 2018-5-16 16:41:36 | 显示全部楼层
回复 5# chzj589
怎么加上去了还是不改变颜色,究竟还有哪里不对,大侠
[au3]Func KC_lvdraw()
        _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
        Local $Irval, $Aresult, $Irows, $Icolumns
        $Irval = _SQLite_GetTable2d( _SQLite_Open ($SQLite_Data_Path), "select rowid,* from kaojuan;", $Aresult, $Irows, $Icolumns)
                GUICtrlSetColor($ListView1, 0x000000)
        _ArrayDelete($aresult, 0)
       _GUICtrlListView_AddArray($ListView1, $Aresult)
           _SQLite_QueryFinalize($hQuery)
          
           Local $sText, $sText2, $sText3, $sText4, $aItem, $iDateCalc
         $sText2 = _GUICtrlListView_GetItemCount($ListView1) ;参璸陪ボ?ListView掸计检索列表视图的项目数量
            For $i = 0 To ($sText2 - 1) Step 1 ;癹伴矪瞶
                $aItem = _GUICtrlListView_GetItemTextArray($ListView1, $i)
                                If $aItem[3] > 60 And $aItem[3] < 70 Then
                                        Local $b = ControlListView("从数据库里获取姓名示例", "", $ListView1, "FindItem", $aItem[1]);发送命令到 ListView32 控件
                        GUICtrlSetColor(_GUICtrlListView_GetItemParam($ListView1, $b), '0xFF00FF');获取列表视图项目的应用程序特定值
                        GUICtrlSetBkColor(_GUICtrlListView_GetItemParam($ListView1, $b), '0xCCCCCC')
                            EndIf
                        Next       
          
          
EndFunc[/AU3]
发表于 2018-5-16 17:01:16 | 显示全部楼层
本帖最后由 kk_lee69 于 2018-5-16 17:05 编辑

回复 6# qsy666888

大哥  你還是沒抓到重點
http://www.autoit3.cn/forum.php? ... hlight=%D7%83%C9%AB

看六樓 我的回覆
发表于 2018-5-16 17:16:30 | 显示全部楼层
回复  chzj589
怎么加上去了还是不改变颜色,究竟还有哪里不对,大侠
qsy666888 发表于 2018-5-16 16:41

在写代码时就要想到后面需要的连接
列表框没有需要的判断语句,要如何实现?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2018-5-16 17:24:29 | 显示全部楼层
回复 8# chzj589
太强大了,怎么弄的哈,请赐教
发表于 2018-5-16 17:28:05 | 显示全部楼层
本帖最后由 chzj589 于 2018-5-16 17:29 编辑

回复 9# qsy666888

chzj589 发表于 2018-5-16 13:28

http://www.autoit3.cn/viewthread ... 7%C9%AB%EE%81%C9%AB
<listview指定欄位無法更改底色顏色[已解決]>
就是上面的例子修改的
发表于 2018-5-16 22:23:18 | 显示全部楼层
回复 9# qsy666888



解決方法  方式  原理  都提供給你了.......這個不是困難的事情

有太多的例子了

剩下的就麻煩你自己動手了~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2018-5-16 22:38:29 | 显示全部楼层
回复 11# kk_lee69
这个数据库的id序列号怎么获取呢,起始位置是从0开始,0的位置指向姓名列。
发表于 2018-5-16 22:46:28 | 显示全部楼层
回复 12# qsy666888



0 是 ID  1 是姓名  2是 分數

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2018-5-16 22:58:52 | 显示全部楼层
回复 13# kk_lee69

我是自定义的,不知道id那那个值怎么获取

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2018-5-16 23:36:00 | 显示全部楼层
回复 14# qsy666888

你想要做啥??

$Aresult[0][0] 不就是1
$Aresult[1][0]  不就是2
..
...
...

你應該 連系統怎麼把資料顯示 到 LISTVIEW 都不了解吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2018-10-18 04:27 , Processed in 0.095621 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表