Foxtable(狐表)用户栏目专家坐堂 → 求助:目录树节点双击打开窗体,如果节点名称对应没有窗体,怎么判断呢?当无窗体时不提示,有窗体时则打开。


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

主题:求助:目录树节点双击打开窗体,如果节点名称对应没有窗体,怎么判断呢?当无窗体时不提示,有窗体时则打开。

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:目录树节点双击打开窗体,如果节点名称对应没有窗体,怎么判断呢?当无窗体时不提示,有窗体时则打开。  发帖心情 Post By:2016/11/3 1:16:00 [显示全部帖子]


求助:目录树节点双击打开窗体,如果节点名称对应没有窗体,怎么判断呢?当无窗体时不提示,有窗体时则打开。


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

代码如下;

If e.node.level=4 Then
    For Each frm As WinForm.Form In Forms
        'Output.Show(frm.Name)
        If "       " Then                蓝色部分代码怎么写呢?
            Forms(e.node.text).show
        Else
            MessageBox.Show("无窗体")     
        End If
    Next
 End If







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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)If e.node.level=4 Then   ...  发帖心情 Post By:2016/11/3 9:12:00 [显示全部帖子]

If e.node.level=4 Then
    If Forms.Contains(e.node.text) Then  '判断是否存在节点名的窗体,如果存在
        Forms(e.node.text).show
    Else
        MessageBox.Show("无窗体")
    End If
End If

没有起到效果哦  还是和顶楼图片一样弹出某个窗体不存在  
改成下面的也一样无效!
If Forms.Contains(e.node.text)= True Then  '判断是否存在节点名的窗体,如果存在

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)这里代码没有问题,检查其它地方的代...  发帖心情 Post By:2016/11/3 9:52:00 [显示全部帖子]

确实是红色部分代码有问题:【红色部分代码是实现在窗体中加入节点名称的窗体,不知道有没有办法实现以下代码完美配合呢?】
'Dim PB As WinForm.Panel = e.Form.Controls("Panel1")
'Dim Name As String = e.node.Name
'Forms(Name).OPEN(-1000,-1500)
'Forms(Name).BaseForm.TopLevel = False
'Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
'Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
'
'PB.BaseControl.Controls.Clear
'PB.BaseControl.Controls.add(Forms(Name).BaseForm)


If e.node.level=4 Then
    If Forms.Contains(e.node.text)= True Then  '判断是否存在节点名的窗体
        Forms(e.node.text).show
    'Else
        'MessageBox.Show("无窗体")
    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(blackzhu)?代码肯定有效 你判断下究竟是...  发帖心情 Post By:2016/11/3 9:54:00 [显示全部帖子]

为了怕后续增加节点 所以多弄了几个
朱老师应该有办法实现节点数自动增加后,而不用修改这个数字的办法吧?

下面是想展开节点 结果出现如图错误,参照帮助搞的。

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
tv.Nodes(1).Expand()也一样错误!
[此贴子已经被作者于2016/11/3 9:55:14编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)回7楼tv.ExpandAll  发帖心情 Post By:2016/11/3 10:53:00 [显示全部帖子]

不要全部展开节点哦 
要的是只打开
贵州省
黔南州
县级院名
上述三个节点

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)回6楼If e.node.level=4 Then  ...  发帖心情 Post By:2016/11/3 10:59:00 [显示全部帖子]

参照对应节点补充后,双击根节点出现错误。

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


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)麻烦把你这个事件完整全部所有的代码...  发帖心情 Post By:2016/11/3 11:37:00 [显示全部帖子]

If e.node.level=3 Then
    If Forms.Contains(e.node.text)= True Then  '判断是否存在节点名的窗体
        Dim PB As WinForm.Panel = e.Form.Controls("Panel1")
        Dim Name As String = e.node.Name
        Forms(Name).OPEN(-1000,-1500)
        Forms(Name).BaseForm.TopLevel = False
        Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
        Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
        
        PB.BaseControl.Controls.Clear
        PB.BaseControl.Controls.add(Forms(Name).BaseForm)
        'Else
        'MessageBox.Show("无窗体")
    End If
End If
If e.node.level=2 Then
    If Forms.Contains(e.node.text)= True Then  '判断是否存在节点名的窗体
        Dim PB As WinForm.Panel = e.Form.Controls("Panel1")
        Dim Name As String = e.node.Name
        Forms(Name).OPEN(-1000,-1500)
        Forms(Name).BaseForm.TopLevel = False
        Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
        Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
        
        PB.BaseControl.Controls.Clear
        PB.BaseControl.Controls.add(Forms(Name).BaseForm)
        'Else
        'MessageBox.Show("无窗体")
    End If
End If
If e.node.level=1 Then
    If Forms.Contains(e.node.text)= True Then  '判断是否存在节点名的窗体
        Dim PB As WinForm.Panel = e.Form.Controls("Panel1")
        Dim Name As String = e.node.Name
        Forms(Name).OPEN(-1000,-1500)
        Forms(Name).BaseForm.TopLevel = False
        Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
        Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
        
        PB.BaseControl.Controls.Clear
        PB.BaseControl.Controls.add(Forms(Name).BaseForm)
If Forms("正义官网数据").opened=True Then
    
    Dim 变量名1 As WinForm.Label = Forms("正义官网数据").Controls("Label10")
    If Forms("主窗体").opened=True Then
        
        变量名1.text= ">>>当前所在节点:" & Forms("主窗体").Controls("Treeview1").SelectedNode.ParentNode.Name & "【" & Forms("主窗体").Controls("Treeview1").SelectedNode.Name & "】"
        DataTables("官网文章").DataRows.Clear
    Else
        变量名1.text= ">>>当前所在节点:"
    End If
End If
If Forms("今日头条数据").opened=True Then
    Dim 变量名2 As WinForm.Label = Forms("今日头条数据").Controls("Label9")
    If Forms("主窗体").opened=True Then
        
        变量名2.text= ">>>当前所在节点:" & Forms("主窗体").Controls("Treeview1").SelectedNode.ParentNode.Name & "【" & Forms("主窗体").Controls("Treeview1").SelectedNode.Name & "】"
        DataTables("头条文章").DataRows.Clear
    Else
        变量名2.text= ">>>当前所在节点:"
    End If
End If
        'Else
        'MessageBox.Show("无窗体")
    End If
End If


'If Forms("正义官网数据").opened=True Then
    '
    'Dim 变量名1 As WinForm.Label = Forms("正义官网数据").Controls("Label10")
    'If Forms("主窗体").opened=True Then
        '
        '变量名1.text= ">>>当前所在节点:" & Forms("主窗体").Controls("Treeview1").SelectedNode.ParentNode.Name & "【" & Forms("主窗体").Controls("Treeview1").SelectedNode.Name & "】"
        'DataTables("官网文章").DataRows.Clear
    'Else
        '变量名1.text= ">>>当前所在节点:"
    'End If
'End If
'If Forms("今日头条数据").opened=True Then
    'Dim 变量名2 As WinForm.Label = Forms("今日头条数据").Controls("Label9")
    'If Forms("主窗体").opened=True Then
        '
        '变量名2.text= ">>>当前所在节点:" & Forms("主窗体").Controls("Treeview1").SelectedNode.ParentNode.Name & "【" & Forms("主窗体").Controls("Treeview1").SelectedNode.Name & "】"
        'DataTables("头条文章").DataRows.Clear
    'Else
        '变量名2.text= ">>>当前所在节点:"
    'End If
'End If
又是红色部分代码放在了节点判断外导致的,注释后正常运行,但是又不想取消这个功能,让之对应更新窗体中的标签内容。然后将红色部分放在节点判断内,解决了问题!
[此贴子已经被作者于2016/11/3 11:41:54编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)回10楼,那就循环第一层节点,判断名...  发帖心情 Post By:2016/11/3 11:44:00 [显示全部帖子]

其实也不是一定要贵州省的才打开
主要是想学习怎么打开0.1.2三个节点,形成如下效果:

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



 回到顶部