欢迎光临
我们一直在努力

VB.NET窗体操作技巧两则-.NET教程,Windows开发

建站超值云服务器,限时71元/月

vb.net窗体操作技巧两则

2003-03-18· ·刘红军 刘乐坤 ··yesky

  一、如何拖动没有边框的窗体?

  这个功能在vb6中,需要借助于api函数才能实现。而在vb.net中,凭自己的功能就能实现。首先设置窗体的formborderstyle属性为none以去掉窗体的边框,然后在窗体上添加一个按钮。窗体中的代码如下:

public class form1
 inherits system.windows.forms.form

 private mouse_offset as point
 private sub form1_mousedown(byval sender as object, byval e as  system.windows.forms.mouseeventargs) handles mybase.mousedown
  mouse_offset = new point(e.x, e.y)
 end sub

private sub form1_mousemove(byval sender as system.object, byval e as system.windows.forms.mouseeventargs) handles mybase.mousemove
 按住鼠标左右键均可拖动窗体
 if e.button = mousebuttons.left or e.button = mousebuttons.right then
  dim mousepos as point = sender.findform().mouseposition
  获得鼠标偏移量
  mousepos.offset(-mouse_offset.x, -mouse_offset.y)
  设置窗体随鼠标一起移动
  sender.findform().location = mousepos
 end if
end sub

private sub btnexit_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
 关闭窗体
 me.close()
end sub
end class

   二、多个窗体之间互相调用

  在vb6中,多个窗体之间可以很方便地互相调用,如:在form1中,只需要用一条“form2.show” 语句就能显示窗体form2。然而在vb.net中窗体处理机制发生了很大的变化:在访问窗体之前,你必须进行窗体实例化;如果在项目中有多处代码访问同一窗体,则你必须把它的同一实例指针传递给这些代码,否则新创建的窗体实例就不再是原先的窗体了。

  下面的代码实现窗体form1和form2之间互相调用,form1为主窗体。form1上的按钮btnshowfrm2的标题为“显示form2”,form2上的按钮btnshowfrm1的标题为“显示form1”。

  1、form1中的代码:

public class form1
inherits system.windows.forms.form
创建form2的一个新的实例
dim frm2 as new form2()

public function instance2(byval frm as form2)
frm2 = frm
end function

private sub btnshowfrm2_click(byval sender as system.object, byval e as system.eventargs) handles btnshowfrm2.click
以下语句保证在form2以及其他窗体中访问form1时,
都将得到form1的同一个窗体实例。
frm2.instance(me)
frm2.show()
me.hide()
end sub

end class

  2、form2中的代码:

public class form2
 inherits system.windows.forms.form
 dim frm1 as form1
 借助一个新增的instance属性来生成窗体frm1的实例
 public function instance(byval frm as form1)
  frm1 = frm
 end function

 private sub btnshowfrm1_click(byval sender as system.object, byval e as system.eventargs)    handles btnshowfrm1.click
  me.hide()
  frm1.show()
 end sub

 private sub form2_closed(byval sender as object, byval e as system.eventargs) handles  mybase.closed
  如果form2被关闭,则设置form1的按钮btnshowfrm2不可用。
  frm1.btnshowfrm2.enabled = false
  frm1.show()
 end sub
end class

  以上代码全部在windows xp,vb.net下调试通过

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » VB.NET窗体操作技巧两则-.NET教程,Windows开发
分享到: 更多 (0)

相关推荐

  • 暂无文章