走近VB.Net(六) 菜单与托盘图标

菜单

走近VB.Net(六) 菜单与托盘图标

在VB.Net中菜单使用控件而不是菜单编辑器,主菜单使用MainMenu控件,弹出菜单使用ContextMenu,这里说一说弹出菜单,至于主菜单用法也没有什么大的区别,在VB6中只要使用菜单就一定会出现那个看得让人有点厌烦的标题栏,可是又没有什么好的办法,只好增加一个隐藏的窗体放置菜单,这就增加了不必要的内存开销,而现在的菜单控件不再有这些问题,可以设置没有标题栏却仍然使用菜单,更加灵活,更加易于使用,当然功能也更强大。托盘图标也使用控件,真的非常容易使用。

新建一个工程,如下添加(象在VB6中一样,点选控件然后在窗体上拖动一下)contextmenu1,trayicon1,(这些运行时不可见的控件都出现在窗体下面的区域),

首先编辑菜单,白色的请单击一下就变成蓝色选中状态,当菜单条呈蓝色选中状态时请输入菜单的标题,这个比VB6容易得多,我不知道是谁说VB.Net很麻烦,更不知道谁发明如此伟大的理论,一定要学java,然后才能学VB.Net。原文的作者只是说在VB.Net还没有发行(这是很久以前的事了)的时候可以学一些java以熟悉一下面向对象的方法。学什么本是各人自己的事情,不过说话总要有一些根椐,我想把王国荣的《VB7 的对象导向功能》开篇一段话放在下面:

“记得有首歌,描写女方婉拒男方的追求而唱出「他比你先来」,但是在计算机的世界里只问谁是我最需要的,先来后到的次序并不是主要的考量。谈到对象导向程序语言的诞生,C++ 及Java的诞生比第一名的SmallTalk晚了很久,但使用人口却远远超过SmallTalk,VB更别说了,只能用「大迟到者」来形容,但迟到总比没到好。为什么VB迟到那么久,原因笔者不详(问微软吧),但今天他也跟其它参与对象导向宴会的程序语言一样盛装而到,要不要与他跳支舞呢?且让我们先来检视一番。”

原文作者认为在VB6中其实已实现80%的面向对象,只是有些人一定要说只有1%的(否则如何才能显出那个的优越呢?)。现在用VB的人少了,大部分是由于有些顽固的观念在作怪,有些人认为有了C#,还要C++做什么?更有人说有了C#,还要VB.Net做什么,我的辩论水平不是很好,我也没有这方面的知识,不过如果你相信王国荣的这段话,相信微软的开发组不是吃“”的,那你就学吧,学习比之成就感也有不逊的乐趣。(并不是所有的人都是为了容易才学VB的,也许想把更多的精力放到需要的地方或者是上帝的安排,VB.Net正是适用这样的人),总之你喜欢用什么就用什么,如果喜欢用VB6的话也没有什么不对,现在不是还有好多人在用VB5么?(winXP都出来了,win95也没有过时,winME想把DOS砍掉,DOS还活得很好,不过我是XXYJ的。如果VB8.0出来,我自然是8.0不回头了)

菜单项加上“退出程序”,“隐藏托盘图标”等等。单击trayicon1的控件,在属性栏编辑属性,visible属性为false,单击contextmenu右侧的向下按键,在下拉列表选择你想要使用弹出菜单,这里只有一个弹出菜单contextmenu1供选择,在icon属性栏的对话框中选出择一个icon图标,最好拷贝到当前目录再在属性栏输入,单击contextmenu,icon前的“+”号,有更多的选项可供选择。

添加一个button1,设置text属性为“显示托盘图标”,写代码如下:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

trayicon1.Visible = True
End Sub

单击contextmenu1控件,在出现在窗体上的菜单上选出择“退出程序”,双击(如果代码编辑不出现,请重新双击),写代码如下:
Protected Sub MenuItem5_Click(ByVal sender As Object, ByVal e As System.EventArgs)

End

End Sub

单击“隐藏托盘图标”,写代码如下:
Protected Sub MenuItem6_Click(ByVal sender As Object, ByVal e As System.EventArgs)

trayicon1.Visible = False

End Sub

运行程序,单击按键“显示托盘图标”,显示托盘图标,右键单击托盘图标选出菜单“隐藏托盘图标”单击,隐藏托盘图标.。当然你需要根据你的需要扩充更强大的功能,让你的程序多姿多彩。

时间: 2025-01-02 00:38:01

走近VB.Net(六) 菜单与托盘图标的相关文章

走近VB.Net(一),VB中的族,类,对象(摘录部分MSDN)

对象 走近VB.Net(一),VB中的族,类,对象 VB.Net是面向对象(object-oriented)的,又称为物件(object)导向(oriented).在VB.Net中所有的变量类型都是基于object,而不是VariantDim x As Variant 会被升级为 Dim as object.如果你不理解对象,暂时你可以把他理解为一段数据,他是实际存在于内存的,所以对象以称为实例(instance)而类(class)就是类别,他定义一群对象,是一个对象的群体,并定义方法成员.所以

走近VB.Net(十三) VB.Net问答全集

走近VB.Net(十三) VB.Net问答全集 VB.Net中文站 http://vbnetcn.126.com hejianzhong 最近老是有人问一些重复的问题,我就想到把他们汇总起来,现在用VB.Net太少,资料更少.问的人也不多,这 些都是从全国的讨论组收集的,有一部份来自-[VB.Net中文站讨论组]http://my.6to23.com/vbnetcn/bbs/BBS2index.htm. 一些是我回答的,有一些是一些较早研究VB.Net的网友回答的,因为是探讨的阶段,可能会有一些

走近VB.Net(八) 常用语法

语法 走近VB.Net(八) 常用语法一:Try---Catch---finally---end try 捕获错误 把一个可能出错的语句放在try后面,如果出错,执行catch语句, catch可以有多个,第一个catch不能捕获的错误,将被下一个catch语句所捕获.在所有的处理结束后,执行finally语句. 在一个try---end try 过程中可以使用catch与finally两个中的一个,或者两个一起用, 二:Protected, private, Public 封装控制 这三个关键

走近VB.Net(五) VB.Net核心概念

概念 走近VB.Net(五) VB.Net核心概念 VB.Net中文教程在行文上有些重复太多甚至有些啰嗦,以至让人读得索然无味,但是,这个VB.Net中文教程确实是很难得甚至可以说是经典的VB.Net文章.说老实一点,除了读得累一些外,实在是比我写的好多少倍.第二个问题就是很多人谈到很惨,说一切要从头学起,其实所要你学的不过是一些简单的语法变化,最重要的是观念的改变,也就是思维方式的转向,也就是说在经过了最初的摸索以后,你在VB6(我是不懂VB6的,我只懂一些D(不是你想的那个D),没有面向对象

走近VB.Net(四) 关于数据类型与示例

示例|数据|数据类型 走近VB.Net(四) 关于数据类型与示例 在前面几章谈得最多的是Variant(vb6)到Object(vb.net)的转换,Object被称为通用的数据类型.另外是32位的long(vb6)被integer(vb.net)所取代,在vb.net中long储存64位的带符号整数.而short存储16位的数字取代vb6的integer的位置.而我们在下面要谈的是Decimal数据类型. 在初学vb6的时候,可能所有的人都做过同一个入门程序"计算器",你可能看到在计

走近VB.Net(九) AxAgent动画窗体的实现

走近VB.Net(九) AxAgent动画窗体的实现 前几天看到一些网友讨论msagent的贴子,其实在VB.Net中实现也很容易却总是没有人肯动手一试.现在我就介绍一下这个很简单的方法,希望激励更多的同道加入我们的队伍,以能相互间促进(这次最好比"洋人"早一步). 首先添加控件(不知道谁说VB.Net不使用控件,真是越传越玄) 第二步将控件在窗体上画出来(这也是运行时不可见的,不过他会出现在窗体上,而不是象timer控件出现在下面. 源代码如下: Imports System.Com

走近VB.Net(十一) 随心所欲窗体外观(skin精彩源码)

走近VB.Net(十一) 随心所欲窗体外观(skin精彩源码) 前几天因为应付约稿,答应的这个源码推迟了几天,今天熬夜把他写出来,请见谅.另外我想说一些题外话,前时我曾在文章中说过,说VB.Net的面向对象抄袭java,delphi没有实际根据(你总不能把面象对象理解成linux核心一样的源码技术,他主要还是一种指导思想),这句话本身就有了逻辑性的错误,请问java与delphi是谁抄谁呢?答案只能是SmallTalk的面向对象更早(见王国荣的文章). VC的面向对象大家闭口不提,然而我个人认为

走近VB.Net(十二) 注册表快速入门

快速入门|注册表 走近VB.Net(十二) 注册表快速入门 作者:hejianzhong VB.Net中文站(http://vbnetcn.126.com) 首先介绍一下注册表的相关基础知识:注册表的每一个文件夹被称为一个Key(项),这个文件夹的子文件夹被称为SubKey(子项),而在一个子项中有不同的Value Name(值项-即数值顶),值项后面就是你要保存的数据Value Data(数据)了.而在子项中通常都有一个Default Value 是默认的Value Name,相信打开过注册表

走近VB.Net(二) 再谈函数调用

函数 走近VB.Net(二) 再谈函数调用 在VB6中如果你想调用一个对话框,首先你知道要使用vb内置的MsgBox函数,你甚至于使用API,大部分人乐于使用API.如下:Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wTy