VB6.0寫的,代碼很簡單,無意中寫成的。應該可以參考。不需要任何api函數(shù)。在無邊框窗體頂部中放入一個label標簽。然后用label的 mouse down 和mouse move事件實現(xiàn)
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計制作、網(wǎng)站建設與策劃設計,齊齊哈爾網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:齊齊哈爾等地區(qū)。齊齊哈爾做網(wǎng)站價格咨詢:18980820575
Dim a, b As Single
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
a = X
b = Y
End Sub
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Form1.Move Left + X - a, Top + Y - b
End If
End Sub
在控件的MouseDown事件中,記錄控件的當前位置和鼠標坐標,并設置一個標志變量表示進入拖動狀態(tài);在MouseMove事件中,判斷如果當前是拖動狀態(tài),則根據(jù)鼠標的當前坐標和MouseDown時的坐標計算出移動量,更改控件位置;在MouseUp事件中清除標志變量。
很久沒有上這里了,今天看到了這個問題,嘗試做了一個;
本例以源文本框TextBox1全部文字作為拖放文字為例,實現(xiàn)拖放
1、向一個窗體中添加兩個文本框,分別名為TextBox1,TextBox2。注意:把TextBox2控件的AllowDrop屬性設置成True,這點不要遺漏。
2、完整的代碼如下:
Public Class Form1
Private MouseIsDown As Boolean = False
Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
'設置一個標志以顯示鼠標已按下。
MouseIsDown = True
End Sub
Private Sub TextBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseMove
If MouseIsDown Then
'開始拖動(將TextBox1的文本內(nèi)容作為拖放內(nèi)容)。
TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy)
End If
MouseIsDown = False
End Sub
Private Sub TextBox2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox2.DragEnter
'檢查正在被拖放的數(shù)據(jù)的格式。
If (e.Data.GetDataPresent(DataFormats.Text)) Then
'顯示復制光標(表示是拖放行為)。
e.Effect = DragDropEffects.Copy
Else
'顯示不放置光標(表示不是拖放行為)。
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub TextBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox2.DragDrop
'粘貼文本(將拖放內(nèi)容作為TextBox2的文本內(nèi)容)。
TextBox2.Text = e.Data.GetData(DataFormats.Text)
End Sub
End Class
我暈。。。
1樓,樓主說的是類似手機桌面,不是說些手機程序(雖然.net確實可以寫手機程序(蛋疼。。))
2樓,為啥不直接改變?nèi)萜鞯腖eft。。。。
切入正題,大致思路:
用一個容器,如Panel來盛裝所有控件,Panel的MouseMove事件中通過e.Button判斷左鍵按下來實現(xiàn)拖動的效果,然后在計時器中更改Panel的Location。(這樣做很簡單,但效率非常低)
要流暢的話,就自己寫一個容器控件,內(nèi)部的子控件全部自己繪制(實現(xiàn)一些輕量級的控件類),不過工作量較大
第一步,點擊VS工具
請點擊輸入圖片描述
第二步,打開后,新建一個Windows窗體應用程序
請點擊輸入圖片描述
第三步,新建完畢后,如圖所示
請點擊輸入圖片描述
第四步,拖動文本框與按鈕,如圖示
請點擊輸入圖片描述
第五步,將剪貼板復制與粘貼代碼輸入,如圖示
請點擊輸入圖片描述
第六步,運行程序
請點擊輸入圖片描述
7
第七步,點擊按鈕,成功從剪貼板中復制與粘貼操作
請點擊輸入圖片描述
可以去網(wǎng)上搜一下凍結表頭
思路是后臺去掉表頭 自己添加一個 在同時加載CSS樣式