Foxtable(狐表)用户栏目专家坐堂 → 文本显示窗口能否动态绑定到单元格


  共有2517人关注过本帖树形打印复制链接

主题:文本显示窗口能否动态绑定到单元格

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17576 威望:0 精华:0 注册:2014/7/29 19:09:00
文本显示窗口能否动态绑定到单元格  发帖心情 Post By:2018/6/8 12:35:00 [只看该作者]


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


如上图设计了一个文本显示框,在表中的doubleclick事件打开文本显示窗口,窗口的afterLoad代码如下:
e.Form.Text = Vars("RemarkCol")  '根据传递的变量显示不同的窗口标题
Dim tx As WinForm.TextBox = e.Form.Controls("TextBox1")
tx.BindingField = CurrentTable.Name & "." & Vars("RemarkCol")  '绑定到当前表中的双击列

窗口打开后在表中切换不同的行都可以自动显示双击打开窗口时那列的内容,可以查看或修改,但有个问题是当想显示另外一列的内容时
必须把窗口关掉,重新在另外一列双击再打开,想请教下
能否在窗口打开后切换到不同的单元格时窗口的标题都可以动态显示单元格所在的列,文本窗口的内容也可以动态绑定到选中的单元格,同步显示或修改?
要怎么实现,如果能实现会不会效率很低?

谢谢!



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/8 12:38:00 [只看该作者]

切换不同的单元格,可以用click事件、prepareEdit事件、afterSelChanged事件,动态绑定窗口textbox的字段,不就行了?


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17576 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/6/8 14:02:00 [只看该作者]

可以了,谢谢,如果想让窗口打开时在屏幕正中央显示而且窗口的顶部与屏幕顶部对齐,要怎么写?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/8 14:11:00 [只看该作者]

以下是引用HappyFt在2018/6/8 14:02:00的发言:
可以了,谢谢,如果想让窗口打开时在屏幕正中央显示而且窗口的顶部与屏幕顶部对齐,要怎么写?

 

控制窗口的top、left属性,如

 

e.form.baseform.top = 0

e.form.baseform.left = (SysInfo.ScreenWidth-e.form.baseform.width) / 2


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17576 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/6/8 16:35:00 [只看该作者]

很奇怪,为什么有时会不显示叱?

代码是写在全局表事件prepareEdit、afterSelChanged都试过,有时都会不显示

If Forms("备注浏览器").Opened Then
    Dim c As Col = CurrentTable.Cols(CurrentTable.ColSel)
    Forms("备注浏览器").Text = c.name '根据传递的变量显示不同的窗口标题
    Dim tx As WinForm.TextBox =  Forms("备注浏览器").Controls("TextBox1")
    tx.BindingField = CurrentTable.name & "." & c.name
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/8 17:30:00 [只看该作者]

If Forms("备注浏览器").Opened Then
    Dim c As Col = CurrentTable.Cols(CurrentTable.ColSel)
    Forms("备注浏览器").Text = c.name '根据传递的变量显示不同的窗口标题
    Dim tx As WinForm.TextBox =  Forms("备注浏览器").Controls("TextBox1")
    tx.BindingField = CurrentTable.name & "." & c.name
msgbox(tx.BindingField ) ‘能不能触发’
End If

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17576 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/6/8 17:59:00 [只看该作者]

能触发



同一个单元格,先点左边规格再去点击下料规格就可以看见,如果先点击过右边的红圈那两列,再去点击下料规格就不显示,也不知道什么原因?
不是很重要,先不管它了,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/8 19:44:00 [只看该作者]

如果还有问题,请做一个例子发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/6/8 20:37:00 [只看该作者]

试试这样

If Forms("备注浏览器").Opened Then
    Dim c As Col = CurrentTable.Cols(CurrentTable.ColSel)
    Forms("备注浏览器").Text = c.name '根据传递的变量显示不同的窗口标题
    Dim tx As WinForm.TextBox =  Forms("备注浏览器").Controls("TextBox1")
tx.BindingField = nothing
tx.text = ""
    tx.BindingField = CurrentTable.name & "." & c.name
End If

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17576 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/6/11 10:57:00 [只看该作者]

用9楼的代码,效果还是一样,  另外想请教下,双击打开窗口后
  LockBaseMainForm()  '锁定主界面
    Forms("备注浏览器").Open()
    Forms("备注浏览器").baseform.top = 50
    Forms("备注浏览器").left = (SysInfo.ScreenWidth - Forms("备注浏览器").baseform.width) / 2
    UnLockBaseMainForm()

有时窗口打开时会先在中间显示闪烁一下,才回到指定的位置,感觉不是很好,用了常用的几中防止闪屏的都不行,要怎么办?
有没有办法在Forms("备注浏览器").Open(X,X) 的括号中加上参数控制打开窗口时就显示在指定的位置?




 回到顶部
总数 17 1 2 下一页