VB.NET窗体操作技巧两则

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下调试通过

时间: 2024-08-30 22:49:39

VB.NET窗体操作技巧两则的相关文章

VB.net窗体应用技巧

本篇文章的主要开发环境是Visual Studio 2008,Visual Studio系列产品一直以来都提供了强大的控件功能,然而我们利用这些控件可以编写出功能强大的应用程序.本文主要利用微软的最新.net开发工具为大家展示窗体特效的应用方法,为大家介绍创建炫酷的透明化窗体以及浮动型窗体的一些技巧.很适合.net开发工具的初学者,具有一定的实用价值. 打开 Visual Studio 2008在文件 (File) 菜单上,单击新建项目 (New Project). 在新建项目 (New Pro

VB.NET 2008窗体应用技巧

打开Visual Studio 2008在文件 (File) 菜单上,单击新建项目 (New Project).在新建项目 (New Project) 对话框的模板 (Templates) 窗格中,单击 Windows 应用程序(Windows Application). 单击确定 (OK) 窗体应用技巧一,创建浮动窗体. 创建新工程后,选择Form1窗体,添加 Timer1和Timer2控件.为窗体选择一个好看的背景,当然你也可以使用系统默认的背景. 进入代 码编辑器,输入代码: Public

Windows2000操作技巧完全手册(上)

有许多单位没有升级系统,还在使用Win 2000,因为机器上运行着单位的各种应用软件,例如财务网络系统等等,如果升级到XP,就需要购买新的财务软件,重新安装设置,许多企业都没有这方面的资金预算,因此Win 2000在国内中小单位目前还是用的很普遍的.为了帮助这部分朋友,全面掌握Win 2000的操作技巧,下面我们就来介绍Win 2000的各种操作秘技,本文力求介绍得全面详实. 本期我们介绍上半部份. 一.安装类 1.制作Win 2000启动盘 如果要安装Win 2000或者Win 2000出故障

Excel表格中序号相关操作技巧

  Excel表格中序号相关操作技巧          序号对于大家来说都不会陌生,今天本文就一起聊聊Excel表格中序号相关操作技巧. 上面这个图中的A列,就是咱们经常看到的序号形式之一. 有朋友会说,这很简单啊,就是一些数字的罗列而已. 但在实际工作当中,远不止数字罗列这么简单.咱们经常会遇到不同样式的序号排列要求,比如说:按部门填写序号.筛选后填写序号.不连续的数据填写序号等等. 先说说生成常规序号. 一般咱们填写序号,只要在第一个单元格内输入数字1,然后按住单元格右下角的填充柄向下拖动,

word操作技巧

现在是讲效率的年代,使用Word来进行平时的办公处理也是一样,那么,我们怎样才能够在Word中"快"起来呢?本教程就为大家介绍10个操作技巧. 1.快速定位到上次编辑位置 用WPS编辑文件时有一个特点,就是当你下次打开一WPS文件时,光标会自动定位到你上一次存盘时的位置.不过,Word却没有直接提供这个功能,但是,当我们在打开Word文件后,如果按下Shift+F5键您就会发现光标已经快速定位到你上一次编辑的位置了. 小提示:其实Shift+F5的作用是定位到Word最后三次编辑的位置

Word各种神快捷键操作技巧大全

我们的办公学习都离不开Word,Word是我们最常用的软件之一.用Word我们写论文.写方案.写情书.写故事- 但其实,Word背后,还有一大批隐藏技能你可能不知道.掌握他们,你将开启新世界的大门.前方高能,小伙伴们请站稳扶好. Word快捷键操作技巧大全 1.妙用Alt键 Alt是单词"Alter"的缩写,意思为"改变". 在Windows操作平台下,Alt键可谓是键盘之王.熟练运用该键,能极大提高工作效率. 按住Alt,可以选择文章的矩形块文档,然后Ctrl+C

Excel非常实用的数据处理操作技巧介绍

  Excel非常实用的数据处理操作技巧介绍          你知道如何对数据去重吗?你知道如何将多列的数据合并成一列吗?如果你还不知道,那么就看去,看完你就会了!下面小编就为大家带来Excel非常实用的数据处理操作技巧,希望能对大家有所帮助!   1.数据去重 图中第1列中的数据是重复的 选中要进行去重的数据,并选择菜单栏中的"数据"功能菜单 选择"删除重复项" 选择"删除重复项"后,会弹出一个对话框,选择"确定"即可 完

ps新手教程之学习图层的基础知识-玩转ps的图层操作技巧

  ps新手教程之学习图层的基础知识-玩转ps的图层操作技巧,艺术家使用ps,摄影师使用ps,数码玩家们也使用ps,与此同时,web设计湿更是离不开PS !该软件气势空前鼎盛,无人不知无人不晓.图层面板是自由独立于ps工作空间里面的一个面板.在这个神奇的图层里面,我们可以缩放.更改颜色.设置样式.改变透明度,等等等等.一个图层代表了一个单独的元素,设计师可以任意更改之.图层可以说在网页设计中起着至关重要的作用.他们用来表示网页设计的元素,他们是用来显示文本框.图像.背景.内容和更多其他元素的基底

Jquery对数组的操作技巧

 这篇文章主要介绍了Jquery对数组的操作技巧,需要的朋友可以参考下 1. $.each(array, [callback]) 遍历[常用]    解释: 不同于例遍 jQuery 对象的 $.each() 方法,此方法可用于例遍任何对象(不仅仅是数组哦~). 回调函数拥有两个参数:第一个为对象的成员或数组的索引, 第二个为对应变量或内容. 如果需要退出 each 循环可使回调函数返回 false, 其它返回值将被忽略.  each遍历,相信都不陌生,在平常的事件处理中,是for循环的变体,但