以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  臨時表樣式  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34068)

--  作者:catyin1989
--  发布时间:2013/5/30 1:31:00
--  臨時表樣式
在form中有一個table控件, 在控件中設置了drawcell事件和表样式,
但是用button控件改變了table的datasource後(新的datasource)是一個臨時表,
自定的表样式便不會出現了, 為甚麼呢? T^T

--  作者:Bin
--  发布时间:2013/5/30 8:41:00
--  
不是同一个表,自然就有不同的表事件吧. 
--  作者:catyin1989
--  发布时间:2013/5/31 10:56:00
--  
在第二個datasource的表(臨時表)也設置了userstyle,但就不會顯示出來呀
--  作者:Bin
--  发布时间:2013/5/31 11:01:00
--  
你直接这样绑定datasource 是不会有效果的,  无论你是临时表还是非临时表

因为你绑定datasource是对Datatable数据表操作.而样式是对Table表面层的界面操作.

--  作者:狐狸爸爸
--  发布时间:2013/5/31 11:26:00
--  

楼主你做个简单例子,写上你的代码,说明目的和问题,我看看能否帮你解决。


--  作者:catyin1989
--  发布时间:2013/5/31 13:11:00
--  
Button的Click:
Dim code As String = Tables("課室分配").current("_Identify")
Dim PPL As Integer = e.Form.controls("課室分配.容納人數").value
Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("時間", Gettype(String), 50)
dtb.AddDef("日期", Gettype(Date), 50)
dtb.Build()
Tables(e.Form.name & "_table1").DataSource = DataTables("表B")

Window的Afterload:
DataTables("表B").AddUserStyle("a", Color.Red, Color.White)


Table控件的DrawCell:
If e.Row.IsNull(e.Col.Name) = False Then
e.style = "a"
End If

--  作者:catyin1989
--  发布时间:2013/5/31 13:11:00
--  
另外我想問一下, 臨時表是不是不能含備註列?
--  作者:狐狸爸爸
--  发布时间:2013/5/31 14:53:00
--  

执行完这一句之后:

Tables(e.Form.name & "_table1").DataSource = DataTables("表B")

 

Drawcell事件代码将由表B接管,所以你的代码应该写在表B中,而不是Table控件中

 

临时表没有备注列。


--  作者:catyin1989
--  发布时间:2013/5/31 15:13:00
--  
因為表B是臨時表, 我想在winform中建立表B時, 一併設定表B的drawcell事件(不離開winform),那應該設在哪裡?
--  作者:狐狸爸爸
--  发布时间:2013/5/31 15:31:00
--  

如果是通过菜单而不是代码创建的临时表,一样可以设置事件的。

 

还是做个简单的例子发上来吧。