注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
走近 WSH(Windows Scripting Hos
连接SQL SERVER的公共类(VB.NET)
一个自动生成用ADO调用SQL SERVE
VB访问SQLServer的探讨
在 SQL Server 2K 中实现 大小写
用VB.net制作一个小程序(3)
让VB开发环境支持鼠标滚轮
VB与VC通信初探(一)
VB与VC通信初探(二)
VB程序中处理随机事件
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> VB >> 文章正文
走近VB.NET十四 制作浮动工具条
作者:佚名  来源:不详  点击:  更新:2006-12-19
简介:

VB.NET中文网是新浪论坛看来的,一个网友把VB.NET中文站叫成了VB.NET中文网,我一想不错,比较大方,不如改了,好,切入正题:

如下图添加按钮:

如下图添加按钮

一共添加6个,text分另为“1”“2”“3”“4”“5”“6”

双击toolbar,写代码如下:

Protected Sub ToolBar1_ButtonClick(ByVal sender As Object, ByVal e As System.WinForms.ToolBarButtonClickEventArgs)
Select Case e.button.Text
Case "1"
msgbox("ToolBarButton1", , "测试")
Case "2"
msgbox("ToolBarButton2", , "测试")
Case "3"
msgbox("ToolBarButton3", , "测试")
Case "4"
msgbox("ToolBarButton4", , "测试")
Case "5"
msgbox("ToolBarButton5", , "测试")
Case "6"
msgbox("ToolBarButton6", , "测试")
End Select
End Sub

是不是太简单了,再来一个“狠”的。

Public Sub New()
MyBase.New
Form1 = Me
InitializeComponent()
Me.Height = toolbar1.Height'窗体只有一个toolbar那么大
me.Width=toolbar1.Width
Me.Top = 0 '在屏幕的最顶出现
formheight = Me.Height
End Sub

这是什么?你应该知道吧,再来:
Public Sub ToolBar1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolBar1.MouseLeave
Me.Height = 3 '鼠标离开缩小
End Sub
Public Sub ToolBar1_MouseMove(ByVal sender As Object, ByVal e As System.WinForms.MouseEventArgs) Handles ToolBar1.MouseMove
Me.Height = toolbar1.Height '鼠标上去恢复
End Sub

以上是回答网友提问“VB.NET怎样使用toolbar控件”

下面我们接着用别外的方法,现在用label,label是什么,就是VB6的label加image了,就这样理解吧:

首先在属性栏设置BorderStyle为none,并在BackgroundImage中添加背景图片(GIF格式)

我弄不到好的图片,hei.就把我的网页上的按钮捣下来了。再用photoshop整得惨不忍睹。

然后清加skinform的模块:

 

'###################################################
'!!!0001!!!04!!!26!!!!!!
'建议不要修改此模块 以免产生不必要的错误(此代码已相当完美) 如欲修改请先备份 _______VB.Net中文站 hejianzhong
'此模块可真接粘贴到您的程序中使用。
'不要删除此信息
'!!!0001!!!04!!!26!!!!!!
Public Module SKin
Public Rect1 As New Rectangle(0, 0, 0, 0)
Public Region1, reg2, reg3, reg4, reg5, reg6 As New System.Drawing.Region(Rect1)
Public Sub SkinRegion(ByVal SKform As Form, Optional ByVal skinNaSKform As String = Nothing)
Dim X, Y, transPix, opaciPix, BgWidth, BgHeight As Integer
Dim rect2 As New Rectangle()
Dim FirARGB As Integer = getpixel(SKform, 1, 1)
Dim Region1 As New System.Drawing.Region(Rect1)
Rect1 = Nothing
'SKform.Visible = False
If skinnaSKform <> Nothing Then SKform.BackgroundImage = SKform.BackgroundImage.FromFile(System.WinForms.Application.StartUpPath & "\" & skinNaSKform & ".gif")
BgWidth = SKform.BackgroundImage.Width
BgHeight = SKform.BackgroundImage.Height
SKform.Height = BgHeight
SKform.Width = BgWidth
For Y = 1 To BgHeight - 1 '这里参考了VB6中的扫描方法,请参考相关资料
X = 0
Do
X = X + 1
While (getpixel(SKform, X, Y) = FirARGB) And (X < BgWidth)
X = X + 1
End While
transPix = X
While (getpixel(SKform, X, Y) <> FirARGB) And (X < BgWidth)
X = X + 1
End While
opaciPix = X - 1
If transPix <= opaciPix Then
rect2 = rect2.FromLTRB(transPix - 1, Y - 1, opaciPix, Y)
Region1.Union(rect2)
rect2 = Nothing
End If
Loop Until X >= BgWidth
Next Y
SKform.Region = Region1
'SKform.Refresh()
'SKform.Visible = True
End Sub
Private Function Getpixel(ByVal SKform As Form, ByVal x As Integer, ByVal y As Integer) As Integer
Dim pm As Bitmap = SKform.BackgroundImage
Try
Return pm.GetPixel(x, y).ToARGB
Catch
Exit Function
End Try
End Function
End Module

双击窗体写入代码:

New是对象构造方法,新建一个实例对象。否则定义的类即不可用。

Public Sub New()
MyBase.NewForm1 = Me
InitializeComponent()
Call SkinRegion(form1) '为窗体改变skin(外观)
End Sub

首先在窗体上放四个label。label1放在具条上适当的位置,text设为"",backcolor(背景色)在属性栏的弹出对话框上点“web”

标签,选出第一个"transparent"的透明色

在toolbar外面放label2,label3,label4属性无所谓,反正是看不见的。

然后分别设置image属性.label1放平面的按钮,而label2放弹起的按钮,label3放按下的按钮,label4放平面的按钮如图

开始写代码了:

首先要使窗体可以在屏幕上被拖动,这个在前面文章有的,拷一个过来:

'下面是移动窗体的代码,请参考前面的文章
Private Sub Form1_MouseDown(ByVal eventSender As System.Object, ByVal eventArgs As System.WinForms.MouseEventArgs)
Me.Capture = False '释放鼠标捕获
Me.SendMessage(&HA1S, 2, 0) '这是VB6中最有名的API消息函数
End Sub

开始写按钮效果:

Public Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.WinForms.MouseEventArgs) Handles Label1.MouseDown
label1.Image = label3.Image '按下时用按下的按钮图片
End Sub
Public Sub Label1_MouseUp(ByVal sender As Object, ByVal e As System.WinForms.MouseEventArgs) Handles Label1.MouseUp
label1.Image = label2.Image '弹起时用弹起的图片
Me.Dispose() '“消灭”这个对象
End '这是退出了
End Sub

Public Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.WinForms.MouseEventArgs) Handles Label1.MouseMove
label1.Image = label2.Image '立体了
End Sub
Public Sub Label1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.MouseLeave
label1.Image = label4.Image '平面了
End Sub

其实这是一个示例,你用imagelist就行了,不知道怎么用?在网上的搜索打“VB 工具条”就出来了。我写得太多了,有人要骂我无聊了。






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务