十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、没有事件是直接由最小化、还原触发的,它们都会触发SizeChanged事件。所以你可以写主窗体的SizeChanged事件来控制副窗体显隐,顺便改变副窗体的相对位置;
创新互联是一家专注于成都网站设计、网站建设与策划设计,东湖网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:东湖等地区。东湖做网站价格咨询:18982081108
2、在SizeChanged事件中,通过判断窗体的WindowState属性来确定用户是最小化还是还原了;(FormWindowState.Minimized和FormWindowState.Normal枚举)
3、调用副窗体的BringToFront方法可以把副窗体带到最前面来
我只讲思路,很简单:
给窗体添加一个键盘按下的事件,判断按键的值是不是F8,
是的话就隐藏窗体(显示窗体)。
form.visible
=
!form.visible;
如果这个窗体是主窗体的话,你只能隐藏,因为主窗体关闭的话程序就退出了。
如果不是主窗体,可以用Form1.Close来关闭。
如果实在是想关闭,就得把程序启动设为sub
main而不是form。
再由sub
main来启动窗体,这样就没有主窗体了。
在vb的事件里,没有对当窗体移动的时候相应的处理事件接口。然而可以利用子类处理来实现。具体的想法是利用子类处理获得
wm—move的消息
然后传递消息到一个正常的窗体的一个按纽,利用按纽的事件接口来模拟对窗体移动事件的模拟:其具体的实现代码如下:
在窗体里加入一个按纽,命名为eventbn
利用eventbn_click()事件来实现对窗体移动事件的处理/
模块代码如下:
public
oldproc
as
long
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
如果你程序中没有显示主窗体的代码,那就无法显示
比如有两个form1 form2两个窗体,窗体上各有一个按钮,form1按钮点击事件代码如下
form2.show
me.hide
这样点击form1的按钮时form1就隐藏,form2被显示。 form2按钮点击事件代码如下
form1.show
me.hide
这样点击form2的按钮时form2就隐藏,form1被显示。
c,如果窗体已经被Load到内存(比如hide以后)的时候show,不会引发Load事件