
右键form1(form1)——添加——添加窗体
这样就可以了
如果想打开另一个窗体代码中软件
form1.Show
Unload Me
如果想打开form2那么就是
form2.Show
Unload Me
以此类推即可
我做了几行。对无标题栏的窗体,或者不从标题栏移动的情况下可用。
有标题栏并且点住标题栏移动则不理想。
代码如下,仅供参考。
1、建立模块。
option
explicit
public
oldproc
as
long
public
declare
function
setwindowlong
lib
"user32"
alias
"setwindowlonga"
(byval
hwnd
as
long,
byval
nindex
as
long,
byval
dwnewlong
as
long)
as
long
public
declare
function
sendmessage
lib
"user32"
alias
"sendmessagea"
(byval
hwnd
as
long,
byval
wmsg
as
long,
byval
wparam
as
long,
byref
lparam
as
any)
as
long
public
declare
function
callwindowproc
lib
"user32"
alias
"callwindowproca"
(byval
lpprevwndfunc
as
long,
byval
hwnd
as
long,
byval
msg
as
any,
byval
wparam
as
any,
byval
lparam
as
any)
as
long
public
const
wm_move
=
&h3
public
const
wm_lbuttondown
=
&h201
public
const
wm_lbuttonup
=
&h202
public
const
gwl_wndproc
=
(-4)
public
bnhwnd
as
long
public
function
newproc(byval
hwnd
as
long,
byval
msg
as
long,
byval
wp
as
long,
byval
lp
as
long)
as
long
if
msg
=
wm_move
then
'捕获窗体移动事件
sendmessage
bnhwnd,
wm_lbuttondown,
1,
0
sendmessage
bnhwnd,
wm_lbuttonup,
1,
0
'将消息发送到按纽,使其发生click事件
end
if
newproc
=
callwindowproc(oldproc,
hwnd,
msg,
wp,
lp)
end
function
2、在窗体上有一个按钮(名称为eventbn)
dim
原垂直
as
single,
原水平
as
single
private
sub
eventbn_click()
msgbox
"移动了"
end
sub
private
sub
form_load()
form2.show
form3.show
bnhwnd
=
eventbn.hwnd
'获得按纽句丙
oldproc
=
setwindowlong(me.hwnd,
gwl_wndproc,
addressof
newproc)
eventbn.visible
=
false
end
sub
private
sub
form_mousedown(button
as
integer,
shift
as
integer,
x
as
single,
y
as
single)
if
button
=
1
then
原垂直
=
me.top
+
y
原水平
=
me.left
+
x
end
if
end
sub
private
sub
form_mouseup(button
as
integer,
shift
as
integer,
x
as
single,
y
as
single)
me.top
=
me.top
-
原垂直
+
y
me.left
=
me.left
-
原水平
+
x
form2.top
=
form2.top
-
原垂直
+
y
form2.left
=
form2.left
-
原水平
+
x
form3.top
=
form3.top
-
原垂直
+
y
form3.left
=
form3.left
-
原水平
+
x
end
sub
3、其他窗体基本都这样。
用容器控件(PictureBox或Frame控件)可以实现。比如先放一个PictureBox控件,在上面再放上其他控件;然后再在窗体放入一个PictureBox控件,再在上面放上另一批按钮、文本框之类的控件,依此类推。然后点第一个按钮时,把第一个PictureBox的Visible属性设为True,其他PictureBox的Visible属性设为False;同理点第二个按钮时,把第二个PictureBox的Visible属性设为True,其他PictureBox的Visible属性设为False,依此类推,即可实现你的目的。当然,如果把作为容器的PictureBox做成控件数组,那么代码会简单得多。其实这就是选项卡的一种灵活实现方式。通过在容器控件中放入不同功能的其他控件,然后只要控制容器控件的显示或隐藏即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)