vb.net

位置:IT落伍者 >> vb.net >> 浏览文章

用Vb.net实现自定义界面


发布日期:2021年04月15日
 
用Vb.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两个控件你可以按照本文提出的方法加入更多的控件从而实现千人千面

其实本人写这篇文章的一个主要目的是为了说明一个程序员不但要掌握牢固的技术同时还要有创新的思想正如国外的分析家指出微软的成功在很大的程度上是依靠它的创新思维所以希望读了此文的读者在以后的开发过程中不要墨守成规!

上一篇:在VB.Net中创建使用控件数组

下一篇:VB.NET菜单设计初级入门[1]