Foxtable(狐表)用户栏目专家坐堂 → 分区版面能否嵌入窗口?


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

主题:分区版面能否嵌入窗口?

美女呀,离线,留言给我吧!
采菊东篱下
  51楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/20 17:55:00 [只看该作者]

  选中子字节节点,去除父点节点的勾代码我想过加上,后见去除父节点选勾,重新勾选子节点,父节点不会出现选勾,就没必要要
 Do While n IsNot Nothing '取消父节点的选中标记,因为选中子节点,就不要选中父节点了
        n.Checked = False
        n = n.ParentNode
    Loop
代码了,现在看如果不去除父节点选勾,直接去除子节点的一个选勾,父节点选勾依然存在,加这代码有必要了。
   前面的代码专为加载数据文字节点写一段代码费劲了,还好通用,谢谢指教。
[此贴子已经被作者于2020/7/20 17:57:21编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  52楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/20 18:22:00 [只看该作者]

我的代码效果是这样的

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200720181643.png
图片点击可在新窗口打开查看
你的代码效果

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200720181823.png
图片点击可在新窗口打开查看
多层子节,再下一层没有勾选。

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


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

帮助搜“递归”,学习思考一下怎么处理下层节点

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  54楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/21 17:05:00 [只看该作者]

递归的内容我认真看了,行不通,你的代码改一下就行了:
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
If trv.Nodes(0).Name = e.Node.Name
    If e.Node.Checked
        For Each nd As WinForm.TreeNode In trv.AllNodes
            nd.Checked  = False
        Next
        e.Node.Checked = True
    Else
        flt = "1=2"
    End If
Else
    trv.Nodes(0).Checked = False
    
    Dim nms As String() = {"团体赛或个人赛","棋赛名称","所属团体或个人分组","姓名"} '指定生成目录树的各列
    Dim qts As String() = {"'","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim n As WinForm.TreeNode = e.Node.ParentNode
    For Each nd As WinForm.TreeNode In e.Node.AllNodes
        nd.Checked  = e.Node.Checked
    Next
    Do While n IsNot Nothing '取消父节点的选中标记,因为选中子节点,就不要选中父节点了
        n.Checked = False
        n = n.ParentNode
    Loop
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If nd.Checked  Then
            Dim rts() As String = nd.FullPath.Split("\")
            Dim val As String = ""
            For i As Integer = 0 To rts.length - 1
                If val > "" Then
                    val = val & " And "
                End If
                val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
            Next
            If flt > "" Then
                flt = flt & " Or (" & val & ")"
            Else
                flt = val
            End If
        End If
    Next
End If
With DataTables("基本信息")
    .LoadFilter = flt '设置加载条件
    .LoadPage = 0 '加载第一页
    .LoadTop = 20 '每页5行
    .LoadOrder = "棋赛名称 desc,团体赛或个人赛,所属团体或个人分组,姓名"
    .LoadReverse = True
    .Load()
    e.Form.Controls("TextBox3").Value = 1 & "/" & .TotalPages
End With

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  55楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/21 17:17:00 [只看该作者]

还有一个问题,我想把导航中某一指定页面设为打开窗口就在导航栏显示它如何设置?我看帮助试过没反应,任务栏里有相关设置,可我的是导航栏。
写这代码报错

Dim Bar As WinForm.NavBar
Bar = e.Form.Controls(
"NavBar1")
Bar.SelectedPage = Bar.NavPages(
"比赛积分")

这样写不起作用:

Dim Bar As WinForm.NavBar

Dim Page1 As WinForm.NavPage

Dim Page2 As WinForm.NavPage

Bar = Forms("主窗口").Controls("NavBar1")

Page1 = Bar.NavPages("比赛积分")

Page2 = Bar.NavPages(0)


[此贴子已经被作者于2020/7/21 17:41:15编辑过]

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


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

SelectedPage

返回或者设置导航栏选定的页面

示例

选定名称为"Task"的页面:

Dim Bar As WinForm.NavBar
Bar = e.Form.Controls(
"NavBar1")
Bar.SelectedPage = Bar.NavPages(
"Task"
Task是控件名称,不是标题,控件页面有指定名称吗?



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


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  57楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/21 17:54:00 [只看该作者]

行了,谢谢。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  58楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/24 13:47:00 [只看该作者]

上面的复选框勾选如果去除子节点选勾后再重选,所有子节点都勾选了,对应的父节点选勾始终没勾选,我想现实还原为没去除勾选前状态,写了一下代码,但报错,请教如何修改:
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
If trv.Nodes(0).Name = e.Node.Name
    If e.Node.Checked
        For Each nd As WinForm.TreeNode In trv.AllNodes
            nd.Checked  = False
        Next
        e.Node.Checked = True
    Else
        flt = "1=2"
    End If
Else
    trv.Nodes(0).Checked = False
    Dim nms As String() = {"团体赛或个人赛","棋赛名称","所属团体或个人分组","姓名"} '指定生成目录树的各列
    Dim qts As String() = {"'","'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim n As WinForm.TreeNode = e.Node.ParentNode
    For Each nd As WinForm.TreeNode In e.Node.AllNodes
        nd.Checked = e.Node.Checked
    Next
    Dim a As Integer
    For Each nd As WinForm.TreeNode In e.Node.AllNodes
        If nd.Checked = True Then '如果勾选 = True Then
            a = a + 1
            If e.Node.AllNodes.count = a Then
                Do While n Is Nothing
                    n.Checked = True
                    n = n.ParentNode
                Loop
            End If
        End If
    Next
    If e.node.Checked = False Then '去除当前字节选勾
        Do While n IsNot Nothing
            n.Checked = False '去掉父节点选中状态
            n = n.ParentNode
        Loop
    End If
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If nd.Checked  Then
            Dim rts() As String = nd.FullPath.Split("\")
            Dim val As String = ""
            For i As Integer = 0 To rts.length - 1
                If val > "" Then
                    val = val & " And "
                End If
                val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
            Next
            If flt > "" Then
                flt = flt & " Or (" & val & ")"
            Else
                flt = val
            End If
        End If
    Next
End If
With DataTables("基本信息")
    .LoadFilter = flt '设置加载条件
    .LoadPage = 0 '加载第一页
    .LoadTop = 20 '每页5行
    .LoadOrder = "棋赛名称 desc,团体赛或个人赛,所属团体或个人分组,姓名"
    .LoadReverse = True
    .Load()
    e.Form.Controls("TextBox3").Value = 1 & "/" & .TotalPages
End With

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


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/24 14:04:00 [只看该作者]

Dim n As WinForm.TreeNode = e.Node.ParentNode
    For Each nd As WinForm.TreeNode In e.Node.AllNodes
        nd.Checked = e.Node.Checked
    Next
    if n isnot nothing then
dim chhh as Boolean = true
    For Each nd As WinForm.TreeNode In n.Nodes
        If nd.Checked = false Then
            chhh = false
exit for
        End If
    Next
n.Checked = chhh 
[此贴子已经被作者于2020/7/24 14:03:44编辑过]

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


加好友 发短信
等级:四尾狐 帖子:989 积分:10360 威望:0 精华:0 注册:2012/12/11 14:25:00
  发帖心情 Post By:2020/7/24 14:27:00 [只看该作者]

狐表的分区面板,bug很多,谨慎使用

 回到顶部
总数 66 上一页 1 2 3 4 5 6 7 下一页