以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  升级后出现一个非常奇怪的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33415)

--  作者:atmetmicoo
--  发布时间:2013/5/17 15:58:00
--  升级后出现一个非常奇怪的问题
狐爸,

贴上案例:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip



在窗口的Afterload放入下列代码:

MessageBox.Show( Tables("表A").Current("星级评定") )
Select Case  Tables("表A").Current("星级评定")
    Case 4
        p1.Image  = GetImage("star-on.png")
        p2.Image  = GetImage("star-on.png")
        p3.Image  = GetImage("star-on.png")
        p4.Image  = GetImage("star-on.png")
        p5.Image  = GetImage("star-off.png")
    Case 5
        p1.Image  = GetImage("star-on.png")
        p2.Image  = GetImage("star-on.png")
        p3.Image  = GetImage("star-on.png")
        p4.Image  = GetImage("star-on.png")
        p5.Image  = GetImage("star-on.png")
    Case Else
        p1.Image  = GetImage("star-off.png")
        p2.Image  = GetImage("star-off.png")
        p3.Image  = GetImage("star-off.png")
        p4.Image  = GetImage("star-off.png")
        p5.Image  = GetImage("star-off.png")
End Select

只有代码前加上MessageBox.Show( Tables("表A").Current("星级评定") )这段代码后,下面的程序才能生效,否则不生效,升级之前很好的,升级之后就出现这个问题,找不到解决办法,好郁闷啊。

--  作者:atmetmicoo
--  发布时间:2013/5/17 16:01:00
--  
也就是说,必须用MessageBox.Show调用一下,Tables("表A").Current("星级评定")才会有值
--  作者:Bin
--  发布时间:2013/5/17 16:04:00
--  
测试很正常啊,无需添加那句代码啊.
--  作者:atmetmicoo
--  发布时间:2013/5/17 16:09:00
--  
Bin老师,我直接上图:


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

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



--  作者:Bin
--  发布时间:2013/5/17 16:14:00
--  
确实有这个问题,我分析一下看看.
--  作者:atmetmicoo
--  发布时间:2013/5/17 16:16:00
--  
谢谢Bin老师,等您消息。
--  作者:Bin
--  发布时间:2013/5/17 16:19:00
--  
看起来好像是有BUG的样子,只需要加上一句MessageBox.Show 即可.ShOW的内容是什么都没关系.无论在代码前 还是结尾都行.
--  作者:狐狸爸爸
--  发布时间:2013/5/17 16:20:00
--  
收到,现在有点忙,回头我看一下
--  作者:don
--  发布时间:2013/5/17 16:55:00
--  
用GDI更簡單:

Dim n As Integer = Tables("表A").Current("星级评定")
if n < 6 then
Dim pt As WinForm.Painter =Forms("窗口1").Controls("Painter1")
Dim img1,img2 As String
img1 ="star-on.png"
img2 ="star-off.png"

Dim g As Graphics = pt.Graphics
g.Clear(Color.White)

For n1 As Integer = 0 To 4
    If  n > 0 Then
        g.DrawImage(getImage(iif(n1< n,img1,img2)),2+16*n1,5,16,16)
    Else
        g.DrawImage(getImage(img2),2+15*n1,5,16,16)
    End If
Next
pt.Repaint()

End if

--  作者:狐狸爸爸
--  发布时间:2013/5/17 16:57:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb