以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教如何让按钮显示出来?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65610)

--  作者:zhy400137
--  发布时间:2015/3/19 9:45:00
--  请教如何让按钮显示出来?
我做了个按钮,更改样式后变成已审核的标记来用,属性设置为不可见,
窗口左边为目录树,在节点点击的按钮处写了
                If ftp1.Download("\\" & FileName,ProjectPath & "FileMange\\" & FileName) = True Then
                    Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    e.Form.Controls("WebBrowser1").basecontrol.Navigate(ProjectPath & "FileMange\\" & FileName )
                    If e.Node.DataRow("文件状态") = "已审核"
                        e.Form.Controls("Button1").Visible= True
                    Else
                        e.Form.Controls("Button1").Visible= False
                    End If
                Else
                    Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                End If

但点击后,按钮不会显示出来,请教老师是什么原因?谢谢

--  作者:Bin
--  发布时间:2015/3/19 9:47:00
--  
If e.Node.DataRow("文件状态") = "已审核"    \'说明没有符合这个条件,符合的话进入IF条件 执行显示代码就会显示了.你调试一下便知  搞不定请上例子
                        e.Form.Controls("Button1").Visible= True  

--  作者:zhy400137
--  发布时间:2015/3/19 9:54:00
--  
单独测试了e.Form.Controls("Button1").Visible= True  ,是能正确显示,但放在下面的代码里,不起作用!

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim FileName As String
Dim FileLen As Integer
Dim UserName As String = user.Name
If e.node.Level = 1 Then \'如果是二级节点
    If e.node.DataRow.Isnull("文件全名") Then
        MessageBox.show("此文件不许任何人查看!","提示")
    ElseIf e.node.DataRow("文件可查看人").IndexOf(UserName) = -1 And (User.Type <> UserTypeEnum.Developer And User.Type <> UserTypeEnum.Administrator) Then
        MessageBox.show("你没有查看此文件的权限!","提示")
        Return
    Else
        If  not e.node.DataRow.Isnull("文件全名") Then
            FileName =e.node.DataRow("文件全名")
            FileLen=FileName.Length-2
            FileName =  FileName.SubString(2,FileLen)
        End If
        If Not FileSys.DirectoryExists(ProjectPath & "\\FileMange") Then
            FileSys.CreateDirectory(ProjectPath & "\\FileMange")
        End If
        If FileSys.FileExists(ProjectPath & "FileMange\\" & FileName) Then
            try
               Dim aa As New System.IO.FileStream(ProjectPath & "FileMange\\" & FileName, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.None)
                aa.Dispose()
                FileSys.DeleteFile(ProjectPath & "FileMange\\" & FileName,2,2) \'则彻底删除之
            Catch ex As Exception
                MessageBox.Show("当前文件已在浏览窗口打开,不能下载同名文件,请先点击下载别的文件后,再打开!","提示",MessageBoxButtons.OK)
            End Try
        End If
        Dim ftp1 As new ftpclient
        ftp1.host="192.168.0.248"
        ftp1.Account = "ytxsp"
        ftp1.password = "ytx820723"
        ftp1.UTF8=True
        If ftp1.Connected = False \'如果FTP没有连接
            If ftp1.Connect Then \'连接FTP
                If ftp1.Download("\\" & FileName,ProjectPath & "FileMange\\" & FileName) = True Then
                    Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    e.Form.Controls("WebBrowser1").basecontrol.Navigate(ProjectPath & "FileMange\\" & FileName )
                    If e.Node.DataRow("文件状态") = "已审核"
                        e.Form.Controls("Button1").Visible= True
                    Else
                        e.Form.Controls("Button1").Visible= False
                    End If
                Else
                    Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                End If
            Else
                Messagebox.show("连接FTP失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            End If
        End If
    End If
End If

--  作者:Bin
--  发布时间:2015/3/19 9:55:00
--  
说明没有进入IF条件.2楼已经解释了.

建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,可以在论坛发帖,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

--  作者:zhy400137
--  发布时间:2015/3/19 9:56:00
--  
我左边是个目录树,右边是WebBrowser1控件,感觉是WebBrowser1控件加载后,就变不见了
--  作者:有点甜
--  发布时间:2015/3/19 9:59:00
--  

 加入msgbox测试,看是否运行了对应的代码啊

 

                    If e.Node.DataRow("文件状态") = "已审核"

msgbox(1)

                        e.Form.Controls("Button1").Visible= True
                    Else
msgbox(2)
                        e.Form.Controls("Button1").Visible= False
                    End If

--  作者:zhy400137
--  发布时间:2015/3/19 10:05:00
--  
                    msgbox(e.Node.DataRow("文件状态"))  
                    If e.Node.DataRow("文件状态") = "已审核"
                        e.Form.Controls("Button1").Visible= True
                       msgbox(1)
                    Else
                        e.Form.Controls("Button1").Visible= False
                       msgbox(2)
                    End If

第一名弹出的 明明是已审核
但为什么IF语句会 显示是2呢?

--  作者:有点甜
--  发布时间:2015/3/19 10:07:00
--  

是不是有空格之类的东西啊,试试

 

msgbox("aaa" & e.Node.DataRow("文件状态") & "bbb")  

 


--  作者:Bin
--  发布时间:2015/3/19 10:08:00
--  
有空格可以改为

 If e.Node.DataRow("文件状态").trim() = "已审核"
[此贴子已经被作者于2015/3/19 10:08:24编辑过]

--  作者:zhy400137
--  发布时间:2015/3/19 10:09:00
--  
真是有,但我用的是自定义列表项目,怎么会产生空格呢?我晕!