调用窗体的Refresh方法时怎么会不停地闪?

断肠人在天涯 2005-05-24 05:48:19
我在程序处理数据时调用窗体的Refresh方法,刷新窗体上的信息,窗体怎么不停地闪?请问如何处理?refresh和update有何区别?
...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
firstshine 2005-05-25
  • 打赏
  • 举报
回复
建议你调用Invalidate方法
wlbfeihu 2005-05-25
  • 打赏
  • 举报
回复
Call Update to force the control to be repainted before any more, possibly time-consuming, processing takes place. Use Update to provide immediate feedback to the user that cannot wait for the Windows paint message to arrive. Update does not invalidate the control, but simply forces a repaint of any regions that have already been invalidated. Call Repaint instead if you need to invalidate the control as well.

Update calls the Windows API UpdateWindow function, which processes any pending paint messages. For more information, see the Win32 Developer's Reference (WIN32.HLP).

procedure Refresh;

Description

Call Refresh method to repaint the control immediately. Refresh calls the Repaint method. Use the Refresh and Repaint methods interchangeably.
jinhaiwu 2005-05-24
  • 打赏
  • 举报
回复
Application.ProcessMessage ;//就可以了,调用窗体的Refresh方法
C#控件大全 、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized (窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。 (3)StartPosition属性:用来获取或设置运行窗体的起始位置。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。 (5)Width属性:用来获取或设置窗体的宽度。 (6)Height属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。值为true 将显示控制框,值为false不显示控制框。 (10)MaximizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。值 为 true显示最大化按钮,值为false不显示最大化按钮。 (11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。值 为 true显示最小化按钮,值为false不显示最小化按钮。 (12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Enter 键就相 当于单击了窗体上的该按钮。 (13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Esc 键就相当 于单击了窗体上的该按钮。 (14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为 true;否则为 false。当有模式地显示窗体,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗 体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中 的对话框。 (15)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。 (17)AutoScroll 属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为 true,则当任何控件位于窗体工作区之外在该窗体上显示滚动条。另外,当自动滚动打开窗体 的工作区自动滚动,以使具有输入焦点的控件可见。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled 属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可 以对用户交互作出响应,则为 true;否则为false。默认值为true。 (21)Font属性:用来获取或设置控件显示的文本的字体。 (22)ForeColor属性:用来获取或设置控件的前景色。 (23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。值为 true, 是子窗体,值为false,不是子窗体。 (24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的 容器。值为true,是子窗体的容器,值为false,不是子窗体的容器。 (25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体 是否将接收该事件。值为true窗体将接收按键事件,值为false窗体不接收按键事件。 (26)MdiChildren属性:数组属性。数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗 体。 (27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。 (28)ShowInTaskbar属性:用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体。 (29)Visible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。值为true 显示窗体或控件,为 false不显示。 (30)Capture属性:如果该属性值为true,则鼠标就被限定只由此控件响应,不管鼠标是否在此控件的 范围内。 2、常用方法 下面介绍一些窗体的最常用方法。 (1)Show方法:该方法的作用是让窗体显示出来,其调用格式为: 窗体名.Show(); 其中窗体名是要显示的窗体名称。 (2)Hide方法:该方法的作用是把窗体隐藏出来,其调用格式为: 窗体名.Hide(); 其中窗体名是要隐藏的窗体名称。 (3)Refresh方法:该方法的作用是刷新并重画窗体,其调用格式为: 窗体名.Refresh(); 其中窗体名是要刷新的窗体名称。 (4)Activate方法:该方法的作用是激活窗体并给予它焦点。其调用格式为: 窗体名.Activate(); 其中窗体名是要激活的窗体名称。 (5)Close方法:该方法的作用是关闭窗体。其调用格式为: 窗体名.Close(); 其中窗体名是要关闭的窗体名称。 (6)ShowDialog方法:该方法的作用是将窗体显示为模式对话框。其调用格式为: 窗体名.ShowDialog(); 3.常用事件 (1)Load事件:该事件在窗体加载到内存发生,即在第一次显示窗体前发生。 (2)Activated事件:该事件在窗体激活发生。 (3)Deactivate事件:该事件在窗体失去焦点成为不活动窗体发生。 (4)Resize事件:该事件在改变窗体大小发生。 (5)Paint事件:该事件在重绘窗体发生。 (6)Click事件:该事件在用户单击窗体发生。 (7)DoubleClick事件:该事件在用户双击窗体发生。 (8)Closed事件:该事件在关闭窗体发生。 文本框类控件 2、Label 控件 1、常用属性: (1)Text属性:用来设置或返回标签控件中显示的文本信息。 (2)AutoSize 属性:用来获取或设置一个值,该值指示是否自动调整控件的大小以完整显示其内容。取 值为 true,控件将自动调整到刚好能容纳文本的大小,取值为false,控件的大小为设计的大小。 默认值为false。 (3)Anchor 属性:用来确定此控件与其容器控件的固定关系的。所谓容器控件指的是这样一种情况:往 往在控件之中还有一个控件,例如最典型的就是窗体控件中包含很多的控件,像标签控件、文本框等。 这称包含控件的控件为容器控件或父控件,而父控件称为子控件。这将遇到一个问题,即子控件与父 控件的位置关系问题,即当父控件的位置、大小变化,子控件按照 什么样的原则改变其位置、大小。Anchor属性就规定了这个原则。 对于 Anchor 属性,可以设定 Top、Bottom、Right、Left 中的任意几 种,设置的方法是在属性窗口中单击Anchor属性右边的箭头,将 出现如图 9-6 的窗口,通过它可设置 Anchor 属性值。图 9-6 中选中 变黑的方位即为设定的方位控制,即图中所示的为 Left、Right、 Bottom。此,如果父窗口变化,子窗口将保证其左边缘与容器左边 的距离、上边缘与容器上边的距离、底边与容器底边的距离等不变, 效果如图9-7 所示。
楼主辛苦开发的源码,0分放送。亲们只要评价五分就是对我的努力付出的最大回报! 此版本比v1.7的多增加了几个函数和方法,同也修正了一些bug。 vb封装的一个控制窗口操作的类,使用非常简单!刻更新。 clsWindow是VB6环境下使用的一个操作外部程序窗口的类,比如得到窗口句柄,得到窗口里某个文本框的内容。非常方便,使用它可以让您脱身于一堆api函数,功能强大使用简单! 这个类楼主很早就开始封装了,原本打算做成类似DOM对象那样,通过一堆getElmentByXXX等方法实现对桌面程序下各个窗口以及里面各个控件对象的自由访问,但是具体要做的工作太多,目前只实现了一部分,期待大家一起加入更新维护。 目前该类封装了绝大部分对windows窗口的常用操作,例如:获取窗口句柄,设置窗口为活动窗口,设置窗口内文本框内容,点击窗口内的某些按钮等。 这个类现在还在一直不断地扩充,功能已经很强大很广泛,使用它可以轻而易举地设置窗口标题栏文字,移动窗体等等。以前要实现这些操作常常需要一大堆api函数,现在只需要一点点代码就可以了,完全让您脱身于api函数的海洋。当然需要您需要研究每个方法实现原理的话可以看一看源代码。 使用范例: 1)关闭腾讯新闻窗口“腾讯网迷你版”。 Dim window As New clsWindow If window.GetWindowHwndByTitle("腾讯网迷你版") > 0 Then window.CloseWindow '关闭窗口 End If 以上是不是很简洁呢? 2)获取某个打开的记事本里面的内容。假设记事本标题为“测试.txt - 记事本”,通过SPY等工具查看得知记事本的文本框类名为:Edit,那么我们编写程序如下: Dim window As New clsWindow If window.GetWindowHwndByTitle("测试.txt - 记事本") > 0 Then MsgBox window.GetElementTextByClassName("Edit") End If 这个看起来也很简单,方法自由还可以使用正则匹配,可以写成下面这样: Dim window As New clsWindow If window.GetWindowHwndByTitleRegExp("测试\.txt.*?") > 0 Then MsgBox window.GetElementTextByClassName("Edi", , True)'第三个参数表示是否使用正则,默认为false End If 更多演示案例: 演示程序一(关闭包含“扫雷、蜘蛛纸牌”等系统自带游戏的窗口): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo1.rar 演示程序二(调用系统计算器,点击里面的按钮进行计算): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo2.rar 演示程序三(激活移动外部程序窗口): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo3.rar 演示程序四(调用系统计算器,花样移动出现,效果很好): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo4.rar clsWindow类最新版下载请关注博客: http://blog.csdn.net/sysdzw/article/details/9083313 '=================================================================================== '描 述:一个操作windows窗口的类,可对窗口进行很多常用的操作(类名为clsWindow) '使用范例:Dim window As New clsWindow ' window.GetWindowHwndByTitle "计算器" ' window.closeWindow '编 程:sysdzw 原创开发,如果有需要对模块扩充或更新的话请邮箱发我一份,共同维护 '发布日期:2013/06/01 '博 客:http://hi.baidu.com/sysdzw ' http://blog.csdn.net/sysdzw 'Email :sysdzw@163.com 'QQ :171977759 '版 本:V1.0 初版 2012/12/03 ' V1.1 修正了几个正则相关的函数,调整了部分类结构 2013/05/28 ' V1.2 增加属性Caption,可以获取或设置当前标题栏 2013/05/29 ' V1.3 增加了方法Focus,可以激活当前窗口 2013/06/01 ' 增加了方法Left,Top,Width,Height,Move,处理窗口位置等 ' V1.4 增加了窗口位置调整的几个函数 2013/06/04 ' 增加了得到应用程序路径的函数AppName ' 增加了得到应用程序启动参数的函数AppCommandLine ' V1.5 增加了窗口最大最小化,隐藏显示正常的几个函数 2013/06/06 ' 增加了获取控件相关函数是否使用正则的参数UseRegExp默认F ' V1.6 将Left,Top函数改为属性,可获得可设置 2013/06/10 ' V1.7 增加了CloseApp函数,可以结束进程 2013/06/13 ' 修正了部分跟正则匹配相关的函数 ' 增加函数:GetElementTextByText ' 增加函数:GetElementHwndByText ' V1.8 增加GetWindowHwndByClassName函数 2013/06/26 ' 增加GetWindowHwndByClassNameEx函数 ' 增加GetWindowHwndByAppName函数 ' 增加私有变量hWnd_ ' 增加属性hWnd,可设置,单设置检查,非法则设置为0 ' 更新GetWindowHwndByTitleEx函数,使之可以选择性支持正则 ' 删除GetWindowHwndByTitleRegExp函数,合并到上面函数 ' 增加SetFocus函数,调用Focus实现,为了是兼容VB习惯 ' 扩了ProcessID、AppPath、AppName、AppCommandLine三个函数,可带参数 ' 网友wwb(wwbing@gmail.com)提供了一些函数和方法属性: ' CheckWindow, Load, WindowState, Visible, hDC, ZOrder ' AlphaBlend, Enabled, Refresh, TransparentColor ' 部分采纳网友意见,将句柄变量改为hWnd_,但是hWnd作为公共属性 '===================================================================================
vb群发消息软件源码,本程序是用vb6在clswindow2.1基础上开发的,是对微信客户端进行自动化处理的,完全模拟手工操作,稳定且绝度安全,不被封。懂代码的可以稍微修改变成定群发,批量指定目标人群群发。绝对物超所值,代码浅显易懂。 这种非常实用的软件作者选择开源,不像一些同行,摸通了一点技术就藏着掖着,没有共享精神,作者再此完全开源,没有dll没有ocx,clswindow2.1库也是作者精心打造可以用于许多自动化操作方面,非常方便。 各位觉得好麻烦给5分好评。 下面附带一下clswindow2.1更新记录,算是2.1这版本的非正式发布吧。 '============================================================================================== '名 称:windows窗体控制类v2.1 '描 述:一个操作windows窗口的类,可对窗口进行很多常用的操作(类名为clsWindow) '使用范例:Dim window As New clsWindow ' window.GetWindowByTitle("计算器").closeWindow '编 程:sysdzw 原创开发,如果有需要对模块扩充或更新的话请邮箱发我一份,共同维护 '发布日期:2013/06/01 '博 客:http://blog.163.com/sysdzw ' http://blog.csdn.net/sysdzw 'Email :sysdzw@163.com 'QQ :171977759 '版 本:V1.0 初版 2012/12/03 ' V1.1 修正了几个正则相关的函数,调整了部分类结构 2013/05/28 ' V1.2 增加属性Caption,可以获取或设置当前标题栏 2013/05/29 ' V1.3 增加了方法Focus,可以激活当前窗口 2013/06/01 ' 增加了方法Left,Top,Width,Height,Move,处理窗口位置等 ' V1.4 增加了窗口位置调整的几个函数 2013/06/04 ' 增加了得到应用程序路径的函数AppName ' 增加了得到应用程序启动参数的函数AppCommandLine ' V1.5 增加了窗口最大最小化,隐藏显示正常的几个函数 2013/06/06 ' 增加了获取控件相关函数是否使用正则的参数UseRegExp默认F ' V1.6 将Left,Top函数改为属性,可获得可设置 2013/06/10 ' V1.7 增加函数:CloseApp 结束进程 2013/06/13 ' 修正了部分跟正则匹配相关的函数 ' 增加函数:GetElementTextByText ' 增加函数:GetElementHwndByText ' V1.8 增加函数:GetWindowByClassName 2013/06/26 ' 增加函数:GetWindowByClassNameEx ' 增加函数:GetWindowByAppName ' 增加私有变量hWnd_ ' 增加属性hWnd,可设置,单设置检查,非法则设置为0 ' 更新GetWindowByTitleEx函数,使之可以选择性支持正则 ' 删除GetWindowByTitleRegExp函数,合并到上面函数 ' 增加SetFocus函数,调用Focus实现,为了是兼容VB习惯
功能描述 clsWindow是VB6环境下使用的一个操作外部程序窗口的类,比如得到窗口句柄,得到窗口里某个文本框的内容。非常方便,使用它可以让您脱身于一堆api函数,功能强大使用简单! 这个类楼主很早就开始封装了,原本打算做成类似DOM对象那样,通过一堆getElmentByXXX等方法实现对桌面程序下各个窗口以及里面各个控件对象的自由访问,但是具体要做的工作太多,目前只实现了一部分,期待大家一起加入更新维护。 目前该类封装了绝大部分对windows窗口的常用操作,例如:获取窗口句柄,设置窗口为活动窗口,设置窗口内文本框内容,点击窗口内的某些按钮等。 这个类现在还在一直不断地扩充,功能已经很强大很广泛,使用它可以轻而易举地设置窗口标题栏文字,移动窗体等等。以前要实现这些操作常常需要一大堆api函数,现在只需要一点点代码就可以了,完全让您脱身于api函数的海洋。当然您需要研究每个方法实现原理的话可以看一看源代码。 使用范例(请在v1.9以上测试): 1)关闭腾讯新闻窗口“腾讯网迷你版”。 Dim window As New clsWindow If window.GetWindowByTitle("腾讯网迷你版").hWnd > 0 Then window.CloseWindow '关闭窗口 End If 以上是不是很简洁呢? 20150715更新追加: 最新1.9版本更简洁,一句话解决: w.GetWindowByTitle("腾讯网迷你版").CloseWindow 小伙伴,是不是简洁爆了呢?:) 为了防止程序找不到窗口而一直等待可以改成: w.GetWindowByTitle("腾讯网迷你版",1).CloseWindow (意思为超等待1秒。默认耐心等60秒,除非你确定窗口一定有,然后就用上面的。) 2)获取某个打开的记事本里面的内容。假设记事本标题为“测试要求.txt - 记事本”,通过SPY等工具查看得知记事本的文本框类名为:Edit,那么我们编写程序如下: Dim window As New clsWindow If window.GetWindowByTitle("测试要求.txt - 记事本").hWnd > 0 Then MsgBox window.GetElementTextByClassName("Edit") End If 这个看起来也很简单,方法自由还可以使用正则匹配,可以写成下面这样: Dim window As New clsWindow If window.GetWindowByTitleEx("工作任务\.txt.*?", , , True).hWnd > 0 Then MsgBox window.GetElementTextByClassName("Edi", , True) '第三个参数表示是否使用正则,默认为false End If 获取标题那边如果觉得要把标题写完整太麻烦,可以将GetWindowByTitle该车GetWindowByTitleEx然后后面只要写关键字就行啦。看招: Dim window As New clsWindow If window.GetWindowByTitleEx("工作任务").hWnd > 0 Then MsgBox window.GetElementTextByClassName("Edit") End If clsWindow类最新版下载请关注博客: http://blog.csdn.net/sysdzw/article/details/9083313 '============================================================================================== '名 称:windows窗体控制类v2.0 '描 述:一个操作windows窗口的类,可对窗口进行很多常用的操作(类名为clsWindow) '使用范例:Dim window As New clsWindow ' window.GetWindowByTitle "计算器" ' window.closeWindow '编 程:sysdzw 原创开发,如果有需要对模块扩充或更新的话请邮箱发我一份,共同维护 '发布日期:2013/06/01 '博 客:http://blog.163.com/sysdzw ' http://blog.csdn.net/sysdzw 'Email :sysdzw@163.com 'QQ :171977759 '版
经验证,可于EXCEL的VBA中使用的二维码(QRMAKER)控件 、VBA中调用QRmaker 由于VBA的窗体环境和VB中的差不多,所以在VBA窗体调用QRmaker就不再描述,这里主要说明一下如何在表格中引用QRmaker。 第一步:单击Office按钮,在Excel选项中开启“开发工具”项,从而让“开发工具”选项卡显示出来。 第二步,插入→其他控件,选择QRmaker。 然后就是在合适的地方绘出QRmaker控件,这自动进入“设计模式”,单击“属性”可以展开控件的“属性”栏,可根据需要设置相关属性,和VB中的操作雷同。 接下来与VB中不一样的地方就是如何在VBA代码中引用QRmaker控件了,这点和VB中有点小区别。 添加“模块”,添加“过程”,输入代码。 Public Sub QRCodeTest() '定义QRString变量,存储要生成二维码的字符串 Dim QRString As String '给QRString赋值,根据实际情况赋值 QRString = Sheet1.Range("E14") & Sheet1.Range("F14") & ";" & Sheet1.Range("E15") & Sheet1.Range("F15") & ";" & Sheet1.Range("E16") & Sheet1.Range("F16") & "_" & Sheet1.Range("G16") & "_" & Sheet1.Range("F17") & "_" & Sheet1.Range("G17") Sheet1.Select '设置QRmaker的AutoRedraw属性为ArOn Sheet1.QRmaker1.AutoRedraw = ArOn '将字符串传递给QRmaker控件 Sheet1.QRmaker1.InputData = QRString '刷新QRmaker的内容,如果AutoRedraw属性为On,则无需此句 'Sheet1.QRmaker1.Refresh End Sub 然后就可以在Excel表格中生成二维码了,根据实际情况,在填写相关数据后,执行上面的语句就可以了,其他的工作该咋的就咋的吧。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧