以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于CurrentTable  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58671)

--  作者:arthurshoe
--  发布时间:2014/10/22 1:10:00
--  关于CurrentTable
做了一个窗体,里面有一个tab control,不同tab里面有绑定不同的表格,窗体的_click事件代码如下
With CurrentTable
    Select Case e.Sender.Name
        Case "add"
            .AddNew
        Case "delete"
            If .Current IsNot Nothing Then
                .Current.Delete
            End If
        Case "save"     
            If .DataTable.HasChanges Then
                .DataTable.Save
            End If  
    End Select
End With

三个按钮分别是增加,删除和保存

有个问题是加载完窗体后,如果原来currenttable不是指向tab control里面的任何table,上面的代码增删保存操作就错误了(增删保存到其他table了),
只有在窗体加载后点击tab变化,currenttable值才是正确的。
怎样在窗体加载后强制currenttable变化?还是针对这个问题有更好的解决方法?


--  作者:Bin
--  发布时间:2014/10/22 8:02:00
--  
不要用currenttable  指定Table
例如 tables("窗口1_Table1")    或者 tables("表A")

--  作者:arthurshoe
--  发布时间:2014/10/22 16:20:00
--  
我的tabcontrol 有5个页面,有5个table,那全局click不是要每一个判断?
--  作者:有点甜
--  发布时间:2014/10/22 16:27:00
--  
 根据tabcontrol的selectedPage属性,判断当前打开哪一个选项卡,从而对应的做操作。
--  作者:arthurshoe
--  发布时间:2014/10/22 22:32:00
--  
一打开窗口。。。我直接点击增加。。。这时的currenttable还是指向外面table。。我需要改变点击其他tab才能改变currenttable。。。
也就是说刚打开窗口。。。点击按钮有问题。。。点击过的话上面的代码就没有问题了。。。怎么修正了。。。谢谢!

--  作者:有点甜
--  发布时间:2014/10/22 22:39:00
--  
 4楼已经跟说了,感觉tabcontrol当前选择的page去判断要往哪个表addnew。
--  作者:arthurshoe
--  发布时间:2014/10/22 22:51:00
--  
谢谢。。我直接把tab.selectpage.name的名称设成table的名字,代码改成
Dim tab As WinForm.TabControl = e.Form.Controls("基础资料")
With Tables(tab.SelectedPage.Name)
    Select Case e.Sender.Name
        Case "add"
            .AddNew
        Case "delete"
            If .Current IsNot Nothing Then
                .Current.Delete
            End If
        Case "save"     
            If .DataTable.HasChanges Then
                .DataTable.Save
            End If  
    End Select
End With