分享
 
 
 

走近VB.NET十四 制作浮动工具条

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

走近VB.NET十四 制作浮动工具条

VB.NET中文网 http://www.yescnet.com

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 工具条”就出来了。我写得太多了,有人要骂我无聊了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有