溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

VB.NET如何實現(xiàn)窗體操作

發(fā)布時間:2021-12-02 09:41:39 來源:億速云 閱讀:451 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)VB.NET如何實現(xiàn)窗體操作,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、如何拖動沒有邊框的VB.NET窗體?

這個功能在VB6中,需要借助于API函數(shù)才能實現(xiàn)。而在VB.NET中,憑自己的功能就能實現(xiàn)。首先設(shè)置窗體的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    '按住鼠標(biāo)左右鍵均可拖動窗體    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)一起移動   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

二、多個窗體之間互相調(diào)用

在VB6中,多個窗體之間可以很方便地互相調(diào)用,如:在Form1中,只需要用一條“Form2.Show” 語句就能顯示窗體Form2。然而在VB.NET中窗體處理機(jī)制發(fā)生了很大的變化:在訪問窗體之前,你必須進(jìn)行窗體實例化;如果在項目中有多處代碼訪問同一窗體,則你必須把它的同一實例指針傳遞給這些代碼,否則新創(chuàng)建的窗體實例就不再是原先的窗體了。

下面的代碼實現(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的一個新的實例  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)   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如何實現(xiàn)窗體操作”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI