
正文
vb.net窗体再最前面 vb窗体运行时在任务栏上显示
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb窗体总是在最前面的设置
先调用
API函数
实现窗体总在最上vb.net窗体再最前面,代码如下:
Private
Declare
Function
SetWindowPos
Lib
"user32"
(ByVal
hwnd
As
Long,
ByVal
hWndInsertAfter
As
Long,
ByVal
x
As
Long,
ByVal
y
As
Long,
ByVal
cx
As
Long,
ByVal
cy
As
Long,
ByVal
wFlags
As
Long)
As
Long
Const
HWND_TOPMOST
=
-1
Private
Sub
Form_Load()
'总在最上
SetWindowPos
Me.hwnd,
HWND_TOPMOST,
Me.Left
/
Screen.TwipsPerPixelX
_
,
Me.Top
\
Screen.TwipsPerPixelY,
Me.Width
\
Screen.TwipsPerPixelX,
_
Me.Height
\
Screen.TwipsPerPixelY,
End
Sub
然后在显示这个窗体时用模态vb.net窗体再最前面,例如:
假设上面vb.net窗体再最前面的窗体为Form1
Form1.Show
vbModal
这样窗体不仅会在最上,而且必须输入正确的密码才能访问别的窗体
相关问答
Q1: VB.net如何设置程序运行时最先打开的窗体?
你是不是用的Visual Studio来开发的?如果是,这样操作:打开 项目 菜单 中的 XXX属性,在弹出的属性页选择最上面那个 应用程序 标签,里面有个启动窗体,你选择一下就可以了。
如果你不是用的visual Studio来开发的,那么可以考虑把另外一个窗口的visible属性先设置为false或者把你要显示的窗口改为对话框的形式,大小比另外一个窗口大一点或者一样(即 模态窗口,必须关闭才能继续操作),这样都可以实现你要的效果。
Q2: vb的窗体怎么显示在最前端?
在某些情况下vb.net窗体再最前面我们需要某个窗体总是在所有窗体的最前端,我们可以使用Form1.show
1来实现,但是这样会出现一个问题,就是使整个程序暂停运行,直到Unload
Form1后程序才会继续运行.
那么如何使我的窗口总在最前?而不影响到我的整体程序运行呢?
使用api函数
SetWindowPos
可以很容易的作到。
SetWindowPos
就是完成设置窗口位置和状态(pos=position)的功能。源代码如下vb.net窗体再最前面:
Option
Explicit
Private
Declare
Function
SetWindowPos
Lib
"user32"
(ByVal
hwnd
As
Long,
ByVal
hWndInsertAfter
As
Long,
ByVal
x
As
Long,
ByVal
y
As
Long,
ByVal
cx
As
Long,
ByVal
cy
As
Long,
ByVal
wFlags
As
Long)
As
Long
Private
Const
HWND_TOPMOST
=
-1
'
将窗口置于列表顶部vb.net窗体再最前面,并位于任何最顶部窗口的前面
Private
Const
SWP_NOSIZE
=
H1
'
保持窗口大小
Private
Const
SWP_NOMOVE
=
H2
'
保持窗口位置
Private
Sub
Form_Load()
SetWindowPos
Me.hwnd,
HWND_TOPMOST,
0,
0,
0,
0,
SWP_NOMOVE
Or
SWP_NOSIZE
'
将窗口设为在所有窗口前端
End
Sub
Q3: vb如何让窗体显示在最前面
引用API函数SetWindowPos就可以解决。下面看看代码:
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongConst SWP_NOMOVE = H2Const SWP_NOSIZE = H1Const FLAG = SWP_NOMOVE Or SWP_NOSIZEConst HWND_TOPMOST = -1Const HWND_NOTOPMOST = -2Const HWND_TOP = 0Const HWND_BOTTOM = 1
将窗口设置最前:Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAG)取消窗口的最前:Call SetWindowPos(Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAG)函数的第一个参数是根据实际情况改变的,它要求给它传送一个窗口的句柄,这里的 Me.hwnd 就给函数传送了当前窗口的句柄,也就是将当前窗口前置或取消前置。如果要前置其他窗口,那么请向函数传送其他窗口的句柄,这个可以根据:FindWindow API函数获取。
Q4: 在VB中如何让窗体总在最前端显示(要求在任务管理器之前)
楼上的不行
我可以永远让窗体居前,运行
资源管理器
时不会被遮掩
添加一个Timer控件,将Interval属性设为100
Public
Declare
Function
SetWindowPos
Lib
"user32"
(ByVal
hwnd
As
Long,
ByVal
hWndInsertAfter
As
Long,
ByVal
x
As
Long,
ByVal
y
As
Long,
ByVal
cx
As
Long,
ByVal
cy
As
Long,
ByVal
wFlags
As
Long)
As
Long
Private
Sub
Timer1_Timer()
SetWindowPos
Me.hWnd,
HWND_TOPMOST,
0,
0,
0,
0,
O1
+
O2
End
Sub
Q5: VB.NET如何让弹出的窗体显示在所有的窗体的最前面(包括其他程序打开的窗体)
你可以这样做,设置窗体的TopMost 属性为真!
Me.TopMost = True
Form.TopMost 属性
获取或设置一个值,指示该窗体是否应显示为最顶层窗体。
关于vb.net窗体再最前面和vb窗体运行时在任务栏上显示的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






