我告訴你思路:
創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元綿陽(yáng)做網(wǎng)站,已為上家服務(wù),為綿陽(yáng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
1,首先添加定時(shí)器,用來(lái)循環(huán)檢查鼠標(biāo)的位置
2,Control.MousePosition.X 可以獲取當(dāng)前鼠標(biāo)在當(dāng)前運(yùn)行窗體中的相對(duì)位置
Control.MousePosition.Y
3,定時(shí)器內(nèi)觸發(fā)當(dāng)鼠標(biāo)位置在TEXTBOX1 和BUTTON1上的事件
個(gè)人都不希望在別人的身上發(fā)現(xiàn)有與自己的相同之處 作為計(jì)算機(jī)軟件來(lái)說(shuō)也是一樣 每一個(gè)用戶都希望自己使用的軟件與別人不一樣 于是誕生了換膚技術(shù) 用戶可以根據(jù)自己的喜好來(lái)選擇不同的界面 從而實(shí)現(xiàn)了個(gè)性化的設(shè)置 但是換膚技術(shù)有一個(gè)不足之處 那就是所有的皮膚都是由開(kāi)發(fā)者預(yù)先提供的 而且數(shù)量有限 這就導(dǎo)致了有些用戶使用的皮膚會(huì)和另一些用戶使用的皮膚相同 從而違背了設(shè)計(jì)者的初衷 雖然有些讀者會(huì)說(shuō) 開(kāi)發(fā)商現(xiàn)在提供了下載服務(wù) 可以從它們的網(wǎng)站下載更多的皮膚供用戶選擇 可是從我的使用中發(fā)現(xiàn)這些皮膚依然是有限的 而且對(duì)于沒(méi)有條件上網(wǎng)的用戶來(lái)說(shuō)這種服務(wù)是毫無(wú)價(jià)值
作為一個(gè)軟件開(kāi)發(fā)人員 當(dāng)一種技術(shù)已經(jīng)無(wú)法滿足用戶的需要的時(shí)候就該開(kāi)動(dòng)腦筋 想想是否可以從另一種角度來(lái)思考問(wèn)題的答案 在這個(gè)前提下 通過(guò)本人的思考終于想出了一個(gè)新的方法 我將它稱為交互界面 使用這種技術(shù)可以保證在全球范圍內(nèi)不會(huì)出現(xiàn)相同的界面結(jié)構(gòu) 從而完全實(shí)現(xiàn)個(gè)性化 其實(shí)要實(shí)現(xiàn)這種界面在技術(shù)方式上并沒(méi)有太高的要求 實(shí)現(xiàn)原理就是 讓用戶自己調(diào)整每一個(gè)控件的位置然后保存這些控件在界面上的坐標(biāo)位置 在以后啟動(dòng)這個(gè)程序的界面時(shí)讀取這些值 用這些值來(lái)設(shè)置控件在界面中的位置 下面的代碼就是為實(shí)現(xiàn)這個(gè)功能而設(shè)計(jì)的(用vb net編寫(xiě))
Private Sub Form _MouseUp(ByVal sender As Object ByVal e As System Windows Forms MouseEventArgs) Handles MyBase MouseUp Dim x y x = e X y = e Y 獲得新的x y的坐標(biāo) If Button Enabled = False Then Button Top = y Button Left = x 坐標(biāo)替換 End If If TextBox Enabled = False Then TextBox Top = y TextBox Left = x End If End Sub Private Sub MenuItem _Click(ByVal sender As System Object ByVal e As System EventArgs) Handles MenuItem Click Button Enabled = False 禁止控件響應(yīng)事件 If TextBox Enabled = False Then TextBox Enabled = True End If End Sub Private Sub MenuItem _Click(ByVal sender As System Object ByVal e As System EventArgs) Handles MenuItem Click TextBox Enabled = False If Button Enabled = False Then Button Enabled = True End If End Sub Private Sub MenuItem _Click(ByVal sender As System Object ByVal e As System EventArgs) Handles MenuItem Click TextBox Enabled = True Button Enabled = True 將新的坐標(biāo)保存到文本文件中 If IO File Exists( c:\k txt ) = True Then IO File Delete( c:\txt ) Dim sw As IO StreamWriter = IO File CreateText( c:\k txt ) Dim cstringt cstringl As String Dim tstringt tstringl As String cstringt = Button Top cstringl = Button Left tstringt = TextBox Top tstringl = TextBox Left sw WriteLine(cstringt) 寫(xiě)入新坐標(biāo)到文本文件中 sw WriteLine(cstringl) sw WriteLine(tstringt) sw WriteLine(tstringl) sw Close() Else Dim sw As IO StreamWriter = IO File CreateText( c:\k txt ) Dim cstringt cstringl As String Dim tstringt tstringl As String cstringt = Button Top cstringl = Button Left tstringt = TextBox Top tstringl = TextBox Left sw WriteLine(cstringt) sw WriteLine(cstringl) sw WriteLine(tstringt) sw WriteLine(tstringl) sw Close() End If MsgBox( 當(dāng)前界面已經(jīng)保存 ) End Sub Private Sub Form _Load(ByVal sender As Object ByVal e As System EventArgs) Handles MyBase Load
If IO File Exists( c:\k txt ) = True Then Dim sr As IO StreamReader = IO File OpenText( c:\k txt ) Dim input input input input As String input = sr ReadLine input = sr ReadLine input = sr ReadLine input = sr ReadLine 讀取文件中的坐標(biāo) Button Top = input Button Left = input TextBox Top = input TextBox Left = input 用文件中的值來(lái)初始化控件在界面中的位置 sr Close() End If End Sub
程序說(shuō)明 在MenuItem _Click 是在調(diào)整控件之后將控件的新位置保存到c;\k txt文件中 form_load中的if作用是 如果是沒(méi)有設(shè)置控件的新位置在初始化是將不會(huì)發(fā)現(xiàn)c;\k txt文件 從而使用默認(rèn)的參數(shù)來(lái)指定控件的位置 如果是有c;\k txt文件存在就讀取其中的參數(shù)來(lái)初始化控件的位置 在Form _MouseUp中通過(guò)點(diǎn)擊窗口中的位置來(lái)獲得新的坐標(biāo) 使控件移動(dòng)到此坐標(biāo)處 對(duì)于Enabled屬性的使用是為了使控件在移動(dòng)時(shí)不響應(yīng)如click等的事件
本文移動(dòng)的控件是textbox和button兩個(gè)控件 你可以按照本文提出的方法加入更多的控件 從而實(shí)現(xiàn)千人千面
lishixinzhi/Article/program/net/201311/15298
mytest1是繼承自什么類,通常應(yīng)該繼承自UerControl,雖然你這樣也能編譯通過(guò),但實(shí)際上沒(méi)有任何意義。所以你先改了再說(shuō)。繼承之后,編譯,工具箱就會(huì)多這么個(gè)控件,拖動(dòng)到Form1上,這樣按鈕下就不用再new了。然后你再來(lái)問(wèn)。