• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用Vb.net實現自定義界面

    發布: 2008-4-10 11:02 | 作者: 不詳 | 來源: ProgramFan | 查看: 113次 | 進入軟件測試論壇討論

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

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

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

      Private Sub Form1_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的坐標
    If Button1.Enabled = False Then
    Button1.Top = y
    Button1.Left = x'坐標替換
    End If
    If TextBox1.Enabled = False Then
    TextBox1.Top = y
    TextBox1.Left = x
    End If
    End Sub
    Private Sub MenuItem2_Click(ByVal sender As System.Object,
      ByVal e As System.EventArgs) Handles MenuItem2.Click
    Button1.Enabled = False'禁止控件響應事件
    If TextBox1.Enabled = False Then
    TextBox1.Enabled = True
    End If
    End Sub
    Private Sub MenuItem3_Click(ByVal sender As System.Object,
      ByVal e As System.EventArgs) Handles MenuItem3.Click
    TextBox1.Enabled = False
    If Button1.Enabled = False Then
    Button1.Enabled = True
    End If
    End Sub
    Private Sub MenuItem4_Click(ByVal sender As System.Object,
      ByVal e As System.EventArgs) Handles MenuItem4.Click
    TextBox1.Enabled = True
    Button1.Enabled = True
    '將新的坐標保存到文本文件中
    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 = Button1.Top
    cstringl = Button1.Left
    tstringt = TextBox1.Top
    tstringl = TextBox1.Left
    sw.WriteLine(cstringt)'寫入新坐標到文本文件中
    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 = Button1.Top
    cstringl = Button1.Left
    tstringt = TextBox1.Top
    tstringl = TextBox1.Left
    sw.WriteLine(cstringt)
    sw.WriteLine(cstringl)
    sw.WriteLine(tstringt)
    sw.WriteLine(tstringl)
    sw.Close()
    End If
    MsgBox("當前界面已經保存")
    End Sub
    Private Sub Form1_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 input1, input2, input3, input4 As String
    input1 = sr.ReadLine
    input2 = sr.ReadLine
    input3 = sr.ReadLine
    input4 = sr.ReadLine'讀取文件中的坐標
    Button1.Top = input1
    Button1.Left = input2
    TextBox1.Top = input3
    TextBox1.Left = input4'用文件中的值來初始化控件在界面中的位置
    sr.Close()
    End If
    End Sub

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

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

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

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>