要用到vb的api函數ClientToScreen,你可以看看這個方面的內容,
10余年建站經驗, 做網站、成都網站建設客戶的見證與正確選擇。創新互聯公司提供完善的營銷型網頁建站明細報價表。后期開發更加便捷高效,我們致力于追求更美、更快、更規范。
這里又一個坐標變換的問題!
控件.location=New Point(X,Y)
X,Y為整數,即控件坐標,原點在窗體左上角
代碼就不寫了,給你思路,默認左上角是原點,所以x的位置=窗口高度-y.
這樣就獲得xy
復雜點的辦法是重寫繪制,繪制十字,
簡單點的辦法就是十字放到picbox或者image里,然后取中,然后隱藏,確定按鈕點擊顯示,中心位置等于坐標點,然后換算左上角控件位置,然后設置坐標.
在你的窗體代碼最頂上(那就第一行吧,其實就是“聲明”那里),加入以下代碼:
Private Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hWnd As Long, lpPoint As POINTAPI) As Long
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
然后呢,我告訴你取鼠標相對控件位置的方法(注意注意:這里取得的坐標是以像素為單位的!!!而VB默認單位是“緹”即Twips。1像素=15緹):
Dim MousePos As POINTAPI
GetCursorPos MousePos
ClientToScreen 控件名.hWnd, MousePos
完了以后,MousePos.x和MousePos.y就是鼠標相對控件的位置的橫縱坐標。去掉“ClientToScreen 控件名.hWnd, MousePos”這句,就是取鼠標在屏幕上的位置。
你原來的代碼里有
Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
這個過程。實際上,這里的X和Y是鼠標在容器(控件)內的位置,以“緹”為單位。要轉化成像素(Pixel),你得把原坐標的橫縱值除以15.
Button1.Location?=?New?Point(100,?100)
或
Button1.Left?=?100
Button1.Top?=?100
窗體內的左上角的座標為(0,0),向右是.Left+,向左是.Left-,向下是.Top+,向上是.Top-;如果要使用相對座標,比如向右移動100,就可以寫成Object.Left=Object.Left+100即可。
網站標題:vb.net控件絕對坐標 vb坐標系統
標題來源:http://vcdvsql.cn/article6/hehdog.html
成都網站建設公司_創新互聯,為您提供小程序開發、企業網站制作、搜索引擎優化、網站策劃、響應式網站、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯