Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样遍历窗口中的RecordGrid


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

主题:[求助]怎样遍历窗口中的RecordGrid

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]怎样遍历窗口中的RecordGrid  发帖心情 Post By:2017/4/25 18:15:00 [只看该作者]

窗口中有多个RecordGrid,分别为RecordGrid1、RecordGrid2......想遍历后引用。谢谢!

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/25 18:22:00 [只看该作者]

方法一:循环所有控件,判断是否为RecordGrid控件。

 

方法二:动态引用

 

for i as integer = 1 to 10

    e.form.controls("recordgrid" & i)

next


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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9374 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/4/25 18:25:00 [只看该作者]

For Each c As WinForm.Control In e.Form.Controls
    If
 Typeof c Is WinForm.RecordGrid Then '判断控件是否是记录窗口
        
Dim rg As WinForm.RecordGrid = c '使用特定类型的变量引用控件
        ...

    End
 If
Next
[此贴子已经被作者于2017/4/25 18:25:12编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/4/25 18:46:00 [只看该作者]

我是想多个RecordGrid共用下面这段代码,这多个RecordGrid,绑定的是同一个表的不同字段。没改成,请帮忙,谢谢!

 

Dim g1 = e.Form.Controls("RecordGrid1").BaseControl
If vars("xy") <> CurrentTable.Position & "," & g1.selection.r1 Then
    vars("xy") = CurrentTable.Position & "," & g1.selection.r1
    Dim rt = e.form.Controls("Panel1").basecontrol.Controls("mytxt")

    rt.text = iif(g1(g1.Selection.r1, 1) Is dbnull.value, "", g1(g1.Selection.r1, 1))
    rt.Select(0, rt.text.length)
    rt.SelectionFont = New Font("仿宋_GB2312",17)  '字体字号
    rt.SelectionStart = rt.text.length
End If
g1.AutoSizeRows

 

[此贴子已经被作者于2017/4/25 20:52:56编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

for i as integer = 1 to 10 '有多少个自己改这个数字

    Dim g1 = e.Form.Controls("RecordGrid" & i).BaseControl

If vars("xy") <> CurrentTable.Position & "," & g1.selection.r1 Then
    vars("xy") = CurrentTable.Position & "," & g1.selection.r1
    Dim rt = e.form.Controls("Panel1").basecontrol.Controls("mytxt")

    rt.text = iif(g1(g1.Selection.r1, 1) Is dbnull.value, "", g1(g1.Selection.r1, 1))
    rt.Select(0, rt.text.length)
    rt.SelectionFont = New Font("仿宋_GB2312",17)  '字体字号
    rt.SelectionStart = rt.text.length
End If
g1.AutoSizeRows

next


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/4/25 21:00:00 [只看该作者]

还是有问题,请版主帮忙看看实例,右边窗口与左边的记录窗口单元格同步;页签1和页签2都绑定 表A, 绑定时存在部分相同的字段。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:image 1.png
图片点击可在新窗口打开查看

附件1:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:记录窗口.table


[此贴子已经被作者于2017/4/25 22:04:03编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106129 积分:539756 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/25 21:39:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:记录窗口.table


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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/4/25 22:05:00 [只看该作者]

谢谢版主!

右侧的录入窗口,光标始终移动到字符尾部,不能在中间编辑了。

另外,如果再增加一个窗口,绑定表B,自定义函数mytxt_TextChanged、mytxt_MouseDown怎么改?

 

附件:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:记录窗口 (1).table

[此贴子已经被作者于2017/4/25 22:10:01编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106129 积分:539756 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/25 22:28:00 [只看该作者]

TimerTick
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim g1 = e.Form.Controls("RecordGrid" & (tab.SelectedIndex+1)).BaseControl
If vars("xy") <> CurrentTable.Position & "," & g1.selection.r1 Then
    vars("xy") = CurrentTable.Position & "," & g1.selection.r1
    Dim rt = e.form.Controls("Panel1").basecontrol.Controls("mytxt")
    rt.text = iif(g1(g1.Selection.r1, 1) Is dbnull.value, "", g1(g1.Selection.r1, 1))
    rt.Select(0, rt.text.length)
    rt.SelectionFont = New Font("仿宋_GB2312",17)  '字体字号
    rt.SelectionStart = rt.text.length
End If

mytxt_TextChanged
Dim f As WinForm.Form = Forms.ActiveForm
If f IsNot Nothing Then
    Dim tab As WinForm.TabControl = f.Controls("TabControl1")
    Dim brgd = f.Controls("RecordGrid" & (tab.SelectedIndex+1)).BaseControl
    Tables(sender.tag).current(brgd(brgd.Selection.r1,0)) = sender.text
End If
[此贴子已经被作者于2017/4/25 22:28:16编辑过]

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


加好友 发短信
等级:四尾狐 帖子:957 积分:8434 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/4/25 22:45:00 [只看该作者]

谢谢版主!

这个函数mytxt_MouseDown怎么改?

 

Dim sender = args(0)
Dim e = args(1)

 

If e.Button = MouseButtons.Right Then '假定按下的是鼠标右键
    ContextMenus("快捷菜单1").Show(forms("窗口1").controls("panel1"),e.x,e.y) '则在鼠标位置显示快捷菜单
End If

 

If e.Button = MouseButtons.Right Then '假定按下的是鼠标右键
    ContextMenus("快捷菜单1").Show(forms("窗口2").controls("panel1"),e.x,e.y) '则在鼠标位置显示快捷菜单
End If

 


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