| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1514 人关注过本帖, 1 人收藏
标题:请教表单刷新不及时的问题
只看楼主 加入收藏
bjgslifeng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-22
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:6 
请教表单刷新不及时的问题
我用VFP9.0制作了一个表单,里面有一个页框Pageframe和一个自定义工具栏Toolbar。该表单运行时,常会出现一个问题让我实在想不通:表单内部命令调用打开一个EXCLE文件,EXCLE界面处于屏幕顶层(遮挡住了表单),关闭EXCLE文件后,该表单显示不完全,变的缺一块少一块的。此时如果将该表单最小化,然后再恢复,表单界面才能被正常显示。
此问题困扰了我好长时间了,一直不能有效解决,请高手帮着分析一下原因,找不个解决的办法,谢谢!
搜索更多相关主题的帖子: 表单 制作 工具栏 原因 
2012-04-02 10:11
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:5 
上传表单及相关文件。
LockScreen 属性设置是否为.F.
参考 Paint 事件

[ 本帖最后由 bccn201203 于 2012-4-2 10:37 编辑 ]
2012-04-02 10:25
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
在表单的click中加上thisform.refresh
表单不用最小化,随便点一下表单就恢复了
2012-04-02 13:43
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
回复 楼主 bjgslifeng
关闭EXCEL后,应及时:
THISFORM.REFRESH
2012-04-02 14:37
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:5 
在表单的GotFocus中加入:
This.Refresh
2012-04-03 06:31
bjgslifeng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-22
收藏
得分:0 
很感谢2-5楼的出手相助,但遗憾的是都不能解决问题。我仔细分析和测试了一下,发现这个问题和一个从FTP服务器下载文件的程序有关,只要运行了这个程序,接下来就会出现这个令人头痛的问题。请大家帮我分析一下,应该怎么修改一下程序:

*从 ftp 上下载文件
*-=-=-=-=-=-=-=-=-=-=-=-=-=-
PARAMETERS  lpszRemoteFile,lpszNewFile
*!*    lpszRemoteFile = "红雨/日历控件.zip"           && if it still exists
*!*    lpszNewFile    = "C:\back\日历控件test.zip"

* How to download a file from the FTP server using FtpGetFile
* 使用 FtpGetFile 从 FTP 上下载文件
*--------------------------------------------------------------
Clea
* lAccessType - some values
#Define INTERNET_INVALID_PORT_NUMBER  0
#Define INTERNET_OPEN_TYPE_DIRECT     1
#Define INTERNET_OPEN_TYPE_PROXY      3
#Define INTERNET_DEFAULT_FTP_PORT     21

* lFlags: only a few
#Define INTERNET_FLAG_ASYNC             268435456     && &H10000000
#Define INTERNET_FLAG_FROM_CACHE        16777216    && &H1000000
#Define INTERNET_FLAG_OFFLINE           16777216
#Define INTERNET_FLAG_CACHE_IF_NET_FAIL 65536        && &H10000

* registry access settings
#Define INTERNET_OPEN_TYPE_PRECONFIG  0
#Define FTP_TRANSFER_TYPE_ASCII       1
#Define FTP_TRANSFER_TYPE_BINARY      2

* type of service to access
#Define INTERNET_SERVICE_FTP     1
#Define INTERNET_SERVICE_GOPHER  2
#Define INTERNET_SERVICE_HTTP    3

* file attributes
#Define FILE_ATTRIBUTE_NORMAL    128    && 0x00000080

Do decl

* you are free to choose any name, say "John Dow"
* server-side variable $AGENT is the target
sAgent = "hongyu"

sProxyName = Chr(0)        && I have no proxy
sProxyBypass = Chr(0)    && so there is nothing to bypass
lFlags = 0                && no flags used

* initialize access to Inet functions
hOpen = InternetOpen (sAgent, INTERNET_OPEN_TYPE_DIRECT,;
    sProxyName, sProxyBypass, lFlags)

If hOpen = 0
    ? "找不到库 WinInet.Dll 的入口"
    Return
Else
*    ? "Wininet 句柄: " + LTRIM(STR(hOpen))
Endif

* connection parameters - you better put your data
strHost = "***。**。**。**"
strUser = "******"
strPwd  = "******"

* connecting to the FTP
hFtpSession = InternetConnect (hOpen, strHost,;
    INTERNET_INVALID_PORT_NUMBER,;
    strUser, strPwd,;
    INTERNET_SERVICE_FTP, 0, 0)

If hFtpSession = 0
    * close access to Inet functions and exit
    = InternetCloseHandle (hOpen)
    ? "FTP " + strHost + " 无效"
    Return
Else
    *? "连接到 " + strHost + " as: [" + strUser + ", *****]"
    *? "FTP 连接句柄: " + LTRIM(STR(hFtpSession))
Endif

* downloading a file from the FTP
* no check whether the target file exists
*!*    lpszRemoteFile = "红雨/日历控件.zip"           && if it still exists
*!*    lpszNewFile    = "C:\back\日历控件test.zip"    && check the destination folder
fFailIfExists  = 0        && do not stop if the target already exists
dwContext      = 0

lnResult = FtpGetFile (hFtpSession, lpszRemoteFile, lpszNewFile,;
    fFailIfExists, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_ASCII,;
    dwContext)

If lnResult # 1
    ? "下载文件失败!"
Endif

* close handles
= InternetCloseHandle (hFtpSession)
= InternetCloseHandle (hOpen)
Return        && main

Procedure  decl
    Declare INTEGER InternetOpen IN wininet;
        STRING sAgent, INTEGER lAccessType, STRING sProxyName,;
        STRING sProxyBypass, STRING  lFlags

    Declare INTEGER InternetCloseHandle IN wininet INTEGER hInet

    Declare INTEGER InternetConnect IN wininet;
        INTEGER hInternetSession, STRING  sServerName,;
        INTEGER nServerPort, STRING  sUsername,;
        STRING  sPassword, INTEGER lService,;
        INTEGER lFlags, INTEGER lContext

    Declare INTEGER FtpGetFile IN wininet;
        INTEGER hFtpSession, STRING  lpszRemoteFile,;
        STRING  lpszNewFile, INTEGER fFailIfExists,;
        INTEGER dwFlagsAndAttributes,;
        INTEGER dwFlags, INTEGER dwContext
Endproc
***************************
 
2012-04-03 22:44
bjgslifeng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-22
收藏
得分:0 
原因终于找到了,原不是"clear"搞的乱。将上面代码中的clear 行删除,界面刷新的问题就解决了!谢谢关注该贴的所有人!
2012-04-05 10:39
快速回复:请教表单刷新不及时的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016270 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved