以文本方式查看主题

-  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=98727)

--  作者:chh2321
--  发布时间:2017/4/5 23:37:00
--  能否让一个按钮可以适用于一个窗体的不同Table?
老师,

如果一个窗体中有三个Table控件,分别绑定了表A,表B和表C,均为正本。
我想用一个按钮(例如addnew)来控制三个表,即addnew按钮会新增一条记录在获得焦点的当前表;而不想做3个新增按钮来分别控制3个表。

不知如何写代码?

--  作者:有点色
--  发布时间:2017/4/6 0:29:00
--  

 

CurrentTable.AddNew

 

 


--  作者:chh2321
--  发布时间:2017/4/6 11:02:00
--  
老师,


是这样,一个窗体中表A是主表(Table正本),两个RecordGrid1、2分别绑定了表B、表C(均为子表正本)。设计了一个AddNew按钮,click事件代码:CurrentTable.AddNew。
结果Addnew按钮只在主表中增加新纪录,RecordGrid1、2无法获得焦点,即便鼠标选取子表单元格也是如此。如何解决呢?
[此贴子已经被作者于2017/4/6 11:03:54编辑过]

--  作者:有点色
--  发布时间:2017/4/6 11:45:00
--  

mark 窗口焦点控件

 

afterLoad事件

 

vars("当前控件") = new object
e.form.TimerInterval = 500
e.form.TimerEnabled = true

 

timertick事件

 

Dim c = e.form.ActiveControl
If c IsNot Nothing Then
    Dim cs() As String = {"RecordGrid1", "RecordGrid2", "Table1"}
    If array.indexof(cs,  c.name) Then
        vars("当前控件") = c
    End If
End If

 

按钮代码

 

If typeof vars("当前控件") is winform.control Then
    msgbox(vars("当前控件").name)
End If