讲述VB.NET窗体特殊问题及处理

开发 后端
VB.NET窗体应用始终是一个永恒的话题,本文用VB6和VB.NET相结合,来说明VB.NET窗体应用的特殊问题及处理,以及VB.NET给我们带来的新的功能!

经过长时间学习VB.NET窗体,于是和大家分享一下,从VB6到VB.NET的开发过程中,VB.NET窗体应用始终是一个永恒的话题,看完本文你肯定有不少收获,希望本文能教会你更多东西。任何一个 WINDOWS的应用程序,都与窗体密切相关,在许多场合,我们都需要对窗体进行一些特殊的设置或操作,本文用VB6和VB.NET相结合,来说明VB.NET窗体应用的特殊问题及处理,以及VB.NET给我们带来的新的功能!以下下介绍使窗体在其他所有窗体之上(Allway On Top)VB6中实现(借助API函数SetWindowPos)

  1. PrivateDeclareFunction SetWindowPos Lib "user32" (ByVal hwnd AsLong, 
    _ByVal hWndInsertAfter AsLong, ByVal x AsLong, ByVal y AsLong, 
    _ByVal cx AsLong, ByVal cy AsLong, ByVal wFlags AsLong) AsLong 

#t#hWnd变元是窗口的句柄;x,y是窗口的左上角的坐标;cx、cy是窗口宽度和高度;hWndInsertAfter变元是窗口清单中hWnd窗口前面的窗口句柄,有四个可选值:
序号 可 选 值 作 用
1 HWND_BOTTOM 把窗口放在窗口清单的底部
2 HWND_TOP 把窗口放在窗口清单的字符顺序的顶部
3 HWND_TOPMOST 把窗口放在窗口清单的顶部
4 HWND_NOTOPMOST 把窗口放在窗口清单的顶部,最上层窗口之下

WFlags变元为整型值,有八个可选值:
序号 可 选 值 作用
1 SWP_DRAWFRAME 在窗口周围画一个方框
2 SWP_HIDEWINDOW 隐藏窗口
3 SWP_NOACTIVATE 不激活窗口
4 SWP_NOMOVE 保持窗口当前位置
5 SWP_NOREDRAW 窗口不自动重画
6 SWP_NOSIZE 保持窗口当前尺寸
7 SWP_NOZORDER 保持窗口在窗口清单中的当前位置
8 SWP_SHOWWINDOW 显示窗口

  1. PrivateDeclareFunction SetWindowPos Lib "user32" (ByVal hwnd AsLong, 
    _ByVal hWndInsertAfter AsLong, ByVal x AsLong, ByVal y AsLong, 
    _ByVal cx AsLong, ByVal cy AsLong, ByVal wFlags AsLong) AsLong  
  2. PrivateConst SWP_NOMOVE = 2 
  3. PrivateConst SWP_NOSIZE = 1 
  4. PrivateConst FLAGS = SWP_NOMOVE Or SWP_NOSIZE  
  5. PrivateConst HWND_TOPMOST = -1  
  6. PrivateConst HWND_NOTOPMOST = -2  
  7.    
  8. PrivateSub Command1_Click()  
  9. '把窗体放在最前面:  
  10. res% = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)  
  11. EndSub  
  12.    
  13. PrivateSub Command2_Click()  
  14. '使窗体恢复普通模式:  
  15. res% = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)  
  16. EndSub 

在VB.NET窗体中,太简单了!系统为窗体提供了TopMost属性,我们将TopMost属性设置为True,就实现了Allways On Top 的功能,要取消此功能,设置为False即可。

  1. PrivateSub Form1_Load(ByVal sender As System.Object, 
    ByVal e As System.EventArgs) HandlesMyBase.Load  
  2. Me.TopMost = True 
  3. EndSub 
责任编辑:佚名 来源: 博客
相关推荐

2009-10-16 09:35:24

VB.NET制作透明窗

2010-01-11 15:12:30

VB.NET特殊窗体

2009-10-27 11:39:03

VB.NET事件处理程

2010-01-11 15:31:04

VB.NET拖动窗体

2009-10-14 17:08:44

VB.NET使用Fil

2009-10-16 13:26:53

VB.NET Exce

2009-10-21 10:45:50

VB.NET Quic

2009-11-03 17:24:01

VB.NET特殊形状窗

2009-10-13 17:03:55

VB.NET面向对象

2009-11-02 15:45:03

VB.NET IEnu

2009-10-12 16:39:59

OracleTransVB.NET使用

2009-10-19 08:55:22

VB.NET多重继承

2009-10-10 16:44:52

VB.NET开发控件

2009-10-14 11:15:06

VB.NET Grou

2009-10-23 13:22:25

VB.NET实现拖动图

2009-10-15 11:11:08

VB.NET Text

2009-10-15 16:39:00

VB.NET读取INI

2010-01-11 18:05:24

VB.NET窗体继承

2010-01-13 09:31:39

VB.NET窗体打印

2009-10-14 13:56:05

VB.NET数据窗体
点赞
收藏

51CTO技术栈公众号