以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]关于ShowToolTip。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=46270)

--  作者:ndxfke
--  发布时间:2014/2/20 11:52:00
--  [讨论]关于ShowToolTip。
以下关于ShowToolTip的表现,不知道是我写的问题,还是本身的不足,

说明:
1.变量都能正常获取,当“对象名称”为空时,出现 ShowToolTip 提示。 --- 实际上没能出现,
2.调试,在  Dim dt As DataTable = cmd.ExecuteReader()  之后,加个messagebox后, ShowToolTip 又能出现。

何原因呢?

If _WinName > "" AndAlso _MenuItemName > "" Then
Dim cmd As new SQLCommand
cmd.ConnectionName = _ServerName
cmd.CommandText = "select * from {平台管理} where [模块名称] = \'" & _WinName & "\' and [控件名称] = \'" & _MenuItemName & "\'"
Dim dt As DataTable = cmd.ExecuteReader()
If dt.DataRows.Count > 0 Then
If dt.DataRows(0)("对象名称") <> "" And dt.DataRows(0)("是否启用") = True Then
Forms(dt.DataRows(0)("对象名称")).Open
ElseIf dt.DataRows(0)("对象名称") = "" Then
Forms(_WinName).Controls(_MenuItemName).ShowToolTip("对象没有被注册!",3000)
ElseIf dt.DataRows(0)("是否启用") = False Then
Forms(_WinName).Controls(_MenuItemName).ShowToolTip("对象没有被启用!",3000)
End If
End If
End If


--  作者:Bin
--  发布时间:2014/2/20 11:58:00
--  
试试这招看看,不行只能上例子了.http://www.foxtable.com/help/topics/1476.htm
--  作者:ndxfke
--  发布时间:2014/2/20 13:03:00
--  
加了这句话,情况还是这样。



If _WinName > "" AndAlso _MenuItemName > "" Then
    Dim cmd As new SQLCommand
    cmd.ConnectionName = _ServerName
    cmd.CommandText = "select * from {平台管理} where [模块名称] = \'" & _WinName & "\' and [控件名称] = \'" & _MenuItemName & "\'"
    Dim dt As DataTable = cmd.ExecuteReader()
    If dt.DataRows.Count > 0 Then
        If dt.DataRows(0)("对象名称") <> "" And dt.DataRows(0)("是否启用") = True Then
            Forms(dt.DataRows(0)("对象名称")).Open
        ElseIf dt.DataRows(0)("对象名称") = "" Then
            Application.DoEvents()
            Forms(_WinName).Controls(_MenuItemName).ShowToolTip("对象没有被注册!",3000)
        ElseIf dt.DataRows(0)("是否启用") = False Then
            Application.DoEvents()
            Forms(_WinName).Controls(_MenuItemName).ShowToolTip("对象没有被启用!",3000)
        End If
    End If
End If

--  作者:ndxfke
--  发布时间:2014/2/20 14:26:00
--  
如果这样不行,是不是就不行了呢?
--  作者:Bin
--  发布时间:2014/2/20 14:26:00
--  
请上例子.
--  作者:lsy
--  发布时间:2014/2/20 15:51:00
--  

试试:

 

If _WinName > "" AndAlso _MenuItemName > "" Then
    Dim cmd As new SQLCommand
    cmd.ConnectionName = _ServerName
    cmd.CommandText = "select * from {平台管理} where [模块名称] = \'" & _WinName & "\' and [控件名称] = \'" & _MenuItemName & "\'"
    Dim dt As DataTable = cmd.ExecuteReader()
    If dt.DataRows.Count > 0 Then
        If dt.DataRows(0)("对象名称") <> "" Then
            If dt.DataRows(0)("是否启用") = True Then
                Forms(dt.DataRows(0)("对象名称")).Open()
            Else
                Forms(_WinName).Controls(_MenuItemName).ShowToolTip("对象没有被启用!",3000)
            End If
        Else
            Forms(_WinName).Controls(_MenuItemName).ShowToolTip("对象没有被注册!",3000)
        End If
    End If
End If