网站首页 > 文章中心 > 其它

vb.net漂亮界面

作者:小编 更新时间:2023-09-04 15:27:30 浏览量:243人看过

vb界面能美化吗?感觉新出来的vb.net的界面明显比vb美观,但是vb.net语法还不熟,现在想把vb变得好看一些.

不难的,vb.net的语言比vb的完整些而已.而且一样可以利用英文的理解方法理解vb.net的代码,相对来说,vb.net更容易.语法来看,vb多数是用缩写的,而vb.net是用完整的单词,更便于理解,而且API也简化了很多.

所以,vb转vb.net是很容易上手的.

在vb.net 2003上美化界面

如果大家用过<>,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更爽,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不爽,看看VB是怎么利用别的东东来实现的吧.

首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,

Name: LblBtn,

BorderStyle: 1,

Appearance: 0,

Private Const LBL_BACK_COLOR = HE0E0E0 '正常时Label控件的背景色

Private Const LBL_WHEN_MOUSE_MOVE = HC0C0C0 '鼠标移动时Label的背景色

再在Form的Load事件中输入以下内容

Private Sub Form_Load()

Dim Count As Integer

LblBtn(Count).BackColor=LBL_BACK_COLOR '初始化LblBtn的背景

Next Count

End Sub

然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:

Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) '当鼠标按在LblBtn上时

LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN '临时改变LblBtn背景颜色

Private Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) '鼠标在LblBtn上面移动时触发该事件

DoEvents '暂时将系统控制权教给系统

If Button Then Exit Sub '如果按钮被按下就退出该过程

If Count Index Then '如果按下的不是其它按钮

LblBtn(Index).BackColor = LBL_BACK_COLOR '将背景设为正常

Else

LblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE '将背景设为鼠标移动的背景

End If

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

DoEvents

LblBtn(Count).BackColor=LBL_BACKCOLOR '恢复背景

End

本来利用Windows的消息系统来完成这一"艰巨"的任务最简单,可问题就来了,Label控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)

OK,Label控件就讲到这里,在来说说TextBox控件,

Appearance 0

BorderStyle 1

MutilLine True

千万不要设置ScrollBars属性,否则会影响效果

在Form的Load事件中初始化TextBox

Dim bkColor As Long

Text1.BackColor=bkColor

在Form和Text1的MouseMove事件中:

Text1.BorderStyle = 0

Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Text1.BorderStyle = 1

可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,

首先声明:

Private Type POINTAPI

x As Long

y As Long

End Type

但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,

只要Alias指向的接口是对的前面的函数名称简直就是摆设,

在建立一个过程:

Public Function sSetFocus() As Long

Dim CPos As POINTAPI,Successfull As Boolean,hWnd As Long

Successfull =GetCursorPos(CPos)

If Not Successfull Then Exit Sub '如果未成功则退出该过程

hWnd=WindowFromPoint(CPos.x,CPos.y)

sSetFocus=nSetFocus(hWnd)

在窗体上放一个Timer控件,Interval 属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?

还有

Public Const WM_NCLBUTTONDOWN = HA1 '表示非工作区左键按下

原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:

Public Sub MoveForm(hWnd As Long)

ReleaseCapture

SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0

在Form的MouseMove事件中:

If Button=vbLeftButton Then MoveForm hWnd'如果按下鼠标左键就移动窗体

台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,

'一下声明是用在ToolSign的 AutoQuit属性的

Public Const EXIT_MESSAGE = 1 '由操作系统发送关闭消息

Public Const EXIT_CUSTOM = Not (EXIT_FORCE Or EXIT_MESSAGE) '自定义

将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,

在Form的Load事件中添加一下初始化代码:

With Sign1

.AutoQuit = EXIT_CUSTOM

.ParentsHWND = hWnd '填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码

End With

Sign1的Click事件

Private Sub Sign1_Click()

End '关闭程序

在Form的Resize事件中添加一下代码:

Private Sub Form_Resize()

Sign1.Width = Width

如果想让窗体可以改变大小,可以修改一下属性

Caption ""

ControlBox False

实际情况如图

不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程-引用-e-Dogkid Runtime Library

然后在窗体Load事件中输入:

Private Sub Form_Load()

Dim System As e_Dogkid_Runtime_Library.System

Set System = New e_Dogkid_Runtime_Library.System

Show

Set System = Nothing

vb.net 控件美化

有个办法就是用图片直接当按钮,鼠标移到图上时显示一个图,鼠标移出图片时显示另一个图,按下时显示一个图 把图的Click事件当按钮的Click来用,松开鼠标时显示另一个图,我以前试过,效果不错,就是事件处理时比用按钮麻烦点,要写鼠标移入、移出、按下、松开的代码

VB中怎样做出各种各样的按钮和好看的界面?

作自定义控件.

或者当第三方控件.比如上

vb中如何美化界面?

关于vb.net界面美化

学习GDI+的知识,不使用系统默认的控件样式,自己写代码绘制外观

以上就是土嘎嘎小编为大家整理的vb.net漂亮界面相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章