這篇文章將為大家詳細(xì)講解有關(guān)VB.NET如何實(shí)現(xiàn)窗體操作,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供山西企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為山西眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
一、如何拖動(dòng)沒(méi)有邊框的VB.NET窗體?
這個(gè)功能在VB6中,需要借助于API函數(shù)才能實(shí)現(xiàn)。而在VB.NET中,憑自己的功能就能實(shí)現(xiàn)。首先設(shè)置窗體的FormBorderStyle屬性為none以去掉窗體的邊框,然后在窗體上添加一個(gè)按鈕。
窗體中的代碼如下:
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 '按住鼠標(biāo)左右鍵均可拖動(dòng)窗體 If e.Button = MouseButtons.Left Or e.Button = MouseButtons.Right Then Dim mousePos As Point = Sender.findform().MousePosition '獲得鼠標(biāo)偏移量 mousePos.Offset(-mouse_offset.X, -mouse_offset.Y) '設(shè)置窗體隨鼠標(biāo)一起移動(dòng) 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 '關(guān)閉窗體 Me.Close() End Sub End Class
二、多個(gè)窗體之間互相調(diào)用
在VB6中,多個(gè)窗體之間可以很方便地互相調(diào)用,如:在Form1中,只需要用一條“Form2.Show” 語(yǔ)句就能顯示窗體Form2。然而在VB.NET中窗體處理機(jī)制發(fā)生了很大的變化:在訪問(wèn)窗體之前,你必須進(jìn)行窗體實(shí)例化;如果在項(xiàng)目中有多處代碼訪問(wèn)同一窗體,則你必須把它的同一實(shí)例指針傳遞給這些代碼,否則新創(chuàng)建的窗體實(shí)例就不再是原先的窗體了。
下面的代碼實(shí)現(xiàn)窗體Form1和Form2之間互相調(diào)用,Form1為主窗體。Form1上的按鈕BtnShowFrm2的標(biāo)題為“顯示Form2”,F(xiàn)orm2上的按鈕BtnShowFrm1的標(biāo)題為“顯示Form1”。
1、Form1中的代碼:
Public Class Form1 Inherits System.Windows.Forms.Form '創(chuàng)建Form2的一個(gè)新的實(shí)例 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 '以下語(yǔ)句保證在Form2以及其他窗體中訪問(wèn)Form1時(shí), '都將得到Form1的同一個(gè)窗體實(shí)例。 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 '借助一個(gè)新增的Instance屬性來(lái)生成窗體frm1的實(shí)例 Public Function Instance(ByVal frm As Form1) frmfrm1 = 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被關(guān)閉,則設(shè)置Form1的按鈕BtnShowFrm2不可用。 frm1.BtnShowFrm2.Enabled = False frm1.Show() End Sub End Class
關(guān)于“VB.NET如何實(shí)現(xiàn)窗體操作”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。