以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Table控件中的某行改变颜色  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12328)

--  作者:ashi_shine
--  发布时间:2011/8/30 9:32:00
--  [求助]Table控件中的某行改变颜色

读取外部数据加载到窗口中的TABLE控件中显示,在对数据进行搜索时,希望实现的是改变该行的显示样式,例如改行的颜色值设置为红色。

 

Dim dr As DataRow
dr =  DataTables("TOP数据读取_Table1").Find("[title] like \'*"+e.Form.Controls("TextBox5").Text+"*\'")
If dr IsNot Nothing Then
    Dim wz As Integer = Tables("TOP数据读取_Table1").FindRow(dr)
    If wz >= 0 Then
        Tables("TOP数据读取_Table1").Position = wz
       ?? Tables("TOP数据读取_Table1").Rows(wz)("title").Style ???
    End If
End If

 

数据表的自定义样式功能,只能针对FOXTABLE窗口中的表数据进行设置,不能针对TABLE控件中的表数据进行设置。

 

请问,以上代码中红色?标示处的代码应该怎样修正??


--  作者:狐狸爸爸
--  发布时间:2011/8/30 9:39:00
--  

参考:

 

http://www.foxtable.com/help/topics/0656.htm

 


--  作者:ashi_shine
--  发布时间:2011/8/30 9:42:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:table控件.jpg
图片点击可在新窗口打开查看

 

是窗体FORM里面的TABLE控件里的TABLE表。

 


图片点击可在新窗口打开查看此主题相关图片如下:table控件-属性.jpg
图片点击可在新窗口打开查看

 

不能自定义样式。

[此贴子已经被作者于2011-8-30 10:06:24编辑过]

--  作者:lyq
--  发布时间:2011/8/30 10:13:00
--  
整行突出设为true即可
--  作者:yangming
--  发布时间:2011/8/30 10:16:00
--  

是选定行的背景颜色吗?如是,选将先选择选定行背景颜色,然后将整行突出定为: True,就行了

[此贴子已经被作者于2011-8-30 10:25:57编辑过]

--  作者:ashi_shine
--  发布时间:2011/8/30 10:25:00
--  

DataTables(" ").Find(SQL)

 

这句返回的是一行DataRow,如果SQL的查询结果是多条记录,如何实现?


--  作者:狐狸爸爸
--  发布时间:2011/8/30 10:29:00
--  

Table控件不是也有drawcell事件吗。

你是不是没有找到向Table控件添加自定义样式吧,看看这个:

http://www.foxtable.com/help/topics/1579.htm

 

 

 

 


--  作者:ashi_shine
--  发布时间:2011/8/30 10:36:00
--  

嗯,是哦。

这样是可以的:

DataTables("TOP数据读取_Table1").AddUserStyle("a", Color.Red, Color.White)     

我原来是写成

Tables("TOP数据读取_Table1").AddUserStyle("a", Color.Red, Color.White)  

就不对了,提示不存在这个方法。

 

看来,DataTablesTables我还没搞清楚。


--  作者:ashi_shine
--  发布时间:2011/8/30 11:11:00
--  

Dim dr As DataRow
dr =  DataTables("TOP数据读取_Table1").Find("[title] like \'*"+e.Form.Controls("TextBox5").Text+"*\'")
If dr IsNot Nothing Then
    Dim wz As Integer = Tables("TOP数据读取_Table1").FindRow(dr)
    If wz >= 0 Then
        Tables("TOP数据读取_Table1").Position = wz 
    End If
End If

 

再问一个问题,这段代码可以获取到符合查询条件的第一条记录。如果想获取符合查询条件的全部记录,并且在TABLE控件中都突出显示。

该如何修改呢?


--  作者:狐狸爸爸
--  发布时间:2011/8/30 11:17:00
--  

1、不同的问题最好分别发帖。

2、还是DrawCell:

 

if e.col.name = ”xxx“ andalso e.newvalue like "*" & Forms("窗口名").Controls("TextBox5").Text & "*" then

   e.Style = "样式名称"

end if