在控件的MouseDown事件中,記錄控件的當前位置和鼠標坐標,并設(shè)置一個標志變量表示進入拖動狀態(tài);在MouseMove事件中,判斷如果當前是拖動狀態(tài),則根據(jù)鼠標的當前坐標和MouseDown時的坐標計算出移動量,更改控件位置;在MouseUp事件中清除標志變量。
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供臨汾網(wǎng)站建設(shè)、臨汾做網(wǎng)站、臨汾網(wǎng)站設(shè)計、臨汾網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、臨汾企業(yè)網(wǎng)站模板建站服務(wù),10年臨汾做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
控件是可以顯示在里面的,你只要加個label,把label的屬性設(shè)為visualble=fause就行。設(shè)置鼠標經(jīng)過頭像的mouseHover和mouseLeave事件,當mouseHover時label的屬性visualble=true,當mouseLeave時label的屬性visualble=fause即可。窗體的鼠標事件可以設(shè)置控件的cursor屬性,里面可以選擇許多種鼠標圖形。 只要是正常的Form都可以改變窗體大小,但是無邊框的窗體只能用函數(shù)改變或者設(shè)置屬性,在debug后是不能改變的。拖動窗體需要在窗體的load時間里面寫入當鼠標單擊不放時的事件即可,不難。
第一步,點擊VS工具
請點擊輸入圖片描述
第二步,打開后,新建一個Windows窗體應(yīng)用程序
請點擊輸入圖片描述
第三步,新建完畢后,如圖所示
請點擊輸入圖片描述
第四步,拖動文本框與按鈕,如圖示
請點擊輸入圖片描述
第五步,將剪貼板復(fù)制與粘貼代碼輸入,如圖示
請點擊輸入圖片描述
第六步,運行程序
請點擊輸入圖片描述
7
第七步,點擊按鈕,成功從剪貼板中復(fù)制與粘貼操作
請點擊輸入圖片描述
很簡單,通過WindowsAPI,刪除窗體菜單項就行了
首先在窗體類中聲明API:
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
Declare Function RemoveMenu Lib "user32" (ByVal lngHmenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
其次聲明API參數(shù)常量:
Const MF_BYPOSITION As Integer = H400
然后在窗體類中寫入過程:
Private Sub UserForm_Initialize_stopmove() '禁止窗體移動
? Dim lngHwnd As IntPtr
? Dim lngHmenu As IntPtr
? lngHwnd = Me.Handle
? If lngHwnd 0 Then
? ? ? lngHmenu = GetSystemMenu(lngHwnd, False)
? ? ? RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '這里的0代表菜單中從上往下數(shù)第一個菜單項
? End If
End Sub
Private Sub UserForm_Initialize_onmove() '恢復(fù)窗體移動
? Dim lngHwnd As IntPtr
? Dim lngHmenu As IntPtr
? lngHwnd = Me.Handle
? If lngHwnd 0 Then
? ? ? lngHmenu = GetSystemMenu(lngHwnd, True)
RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '這里的0與禁止代碼中的數(shù)值同步,原因時雖然表面上刪除了菜單項,實則為隱藏了菜單項,各個菜單的索引值并沒有變,所以0依然代表初始菜單的第一個菜單項,即被刪除的那個菜單項
? End If
End Sub
然后如果你的窗口菜單是動態(tài)變化的,建議聲明常數(shù):
Const MF_BYPOSITION As Integer = H0
然后使用相關(guān)的Windows功能的常數(shù)進行刪除菜單。常數(shù)需要自行查看winuser.h頭文件
如果找不到該頭文件,可以看這里:網(wǎng)頁鏈接
其余信息詳見MSDN:網(wǎng)頁鏈接
最后說一下,不建議前面網(wǎng)友說的重寫WndProc的方法,因為這樣攔截標題欄點擊消息會導(dǎo)致窗體本身的菜單也無法顯示出來,有損窗體功能,并且像雙擊左上角圖標關(guān)閉窗體這樣的功能也會跟著攔截消息的操作一起被吞掉。