熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

用Vb.net實現自定義界面

2013-11-13 11:09:53  來源: .NET編程 
 個人都不希望在別人的身上發現有與自己的相同之處作為計算機軟件來說也是一樣每一個用戶都希望自己使用的軟件與別人不一樣於是誕生了換膚技術用戶可以根據自己的喜好來選擇不同的界面從而實現了個性化的設置但是換膚技術有一個不足之處那就是所有的皮膚都是由開發者預先提供的而且數量有限這就導致了有些用戶使用的皮膚會和另一些用戶使用的皮膚相同從而違背了設計者的初衷雖然有些讀者會說開發商現在提供了下載服務可以從它們的網站下載更多的皮膚供用戶選擇可是從我的使用中發現這些皮膚依然是有限的而且對於沒有條件上網的用戶來說這種服務是毫無價值

  作為一個軟件開發人員當一種技術已經無法滿足用戶的需要的時候就該開動腦筋想想是否可以從另一種角度來思考問題的答案在這個前提下通過本人的思考終於想出了一個新的方法我將它稱為交互界面使用這種技術可以保證在全球范圍內不會出現相同的界面結構從而完全實現個性化   

  其實要實現這種界面在技術方式上並沒有太高的要求實現原理就是讓用戶自己調整每一個控件的位置然後保存這些控件在界面上的坐標位置在以後啟動這個程序的界面時讀取這些值用這些值來設置控件在界面中的位置下面的代碼就是為實現這個功能而設計的(用vbnet編寫)

  Private Sub Form_MouseUp(ByVal sender As Object
   ByVal e As SystemWindowsFormsMouseEventArgs) Handles MyBaseMouseUp
Dim x y
x = eX
y = eY獲得新的xy的坐標
If ButtonEnabled = False Then
ButtonTop = y
ButtonLeft = x坐標替換
End If
If TextBoxEnabled = False Then
TextBoxTop = y
TextBoxLeft = x
End If
End Sub
Private Sub MenuItem_Click(ByVal sender As SystemObject
  ByVal e As SystemEventArgs) Handles MenuItemClick
ButtonEnabled = False禁止控件響應事件
If TextBoxEnabled = False Then
TextBoxEnabled = True
End If
End Sub
Private Sub MenuItem_Click(ByVal sender As SystemObject
  ByVal e As SystemEventArgs) Handles MenuItemClick
TextBoxEnabled = False
If ButtonEnabled = False Then
ButtonEnabled = True
End If
End Sub
Private Sub MenuItem_Click(ByVal sender As SystemObject
  ByVal e As SystemEventArgs) Handles MenuItemClick
TextBoxEnabled = True
ButtonEnabled = True
將新的坐標保存到文本文件中
If IOFileExists(c:\ktxt) = True Then
IOFileDelete(c:\txt)
Dim sw As IOStreamWriter = IOFileCreateText(c:\ktxt)
Dim cstringt cstringl As String
Dim tstringt tstringl As String
cstringt = ButtonTop
cstringl = ButtonLeft
tstringt = TextBoxTop
tstringl = TextBoxLeft
swWriteLine(cstringt)寫入新坐標到文本文件中
swWriteLine(cstringl)
swWriteLine(tstringt)
swWriteLine(tstringl)
swClose()
Else
Dim sw As IOStreamWriter = IOFileCreateText(c:\ktxt)
Dim cstringt cstringl As String
Dim tstringt tstringl As String
cstringt = ButtonTop
cstringl = ButtonLeft
tstringt = TextBoxTop
tstringl = TextBoxLeft
swWriteLine(cstringt)
swWriteLine(cstringl)
swWriteLine(tstringt)
swWriteLine(tstringl)
swClose()
End If
MsgBox(當前界面已經保存)
End Sub
Private Sub Form_Load(ByVal sender As Object
  ByVal e As SystemEventArgs) Handles MyBaseLoad

If IOFileExists(c:\ktxt) = True Then
Dim sr As IOStreamReader = IOFileOpenText(c:\ktxt)
Dim input input input input As String
input = srReadLine
input = srReadLine
input = srReadLine
input = srReadLine讀取文件中的坐標
ButtonTop = input
ButtonLeft = input
TextBoxTop = input
TextBoxLeft = input用文件中的值來初始化控件在界面中的位置
srClose()
End If
End Sub

  程序說明在MenuItem_Click 是在調整控件之後將控件的新位置保存到c;\ktxt文件中form_load中的if作用是如果是沒有設置控件的新位置在初始化是將不會發現c;\ktxt文件從而使用默認的參數來指定控件的位置如果是有c;\ktxt文件存在就讀取其中的參數來初始化控件的位置在Form_MouseUp中通過點擊窗口中的位置來獲得新的坐標使控件移動到此坐標處對於Enabled屬性的使用是為了使控件在移動時不響應如click等的事件

  本文移動的控件是textbox和button兩個控件你可以按照本文提出的方法加入更多的控件從而實現千人千面

  其實本人寫這篇文章的一個主要目的是為了說明一個程序員不但要掌握牢固的技術同時還要有創新的思想正如國外的分析家指出微軟的成功在很大的程度上是依靠它的創新思維所以希望讀了此文的讀者在以後的開發過程中不要墨守成規!


From:http://tw.wingwit.com/Article/program/net/201311/15298.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.