vb中怎样设置菜单项中的checked属性?

 我来答
就烦条0o
推荐于2017-09-19 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

可以在VB的菜单编辑器中直接设置复选,或者在属性管理器是选择相应的菜单,修改checked属性,还可以能过代码,动态修改。

动态修改代码:

Private Sub tm_Click()
  tm.Checked = Not tm.Checked '自动设置Checked
End Sub

如下图所示:

执行效果

点击后

702htme430
2011-08-25 · TA获得超过695个赞
知道答主
回答量:528
采纳率:0%
帮助的人:322万
展开全部
菜单程序设计
一、菜单
菜单的基本作用:
提供人机对话,以便让使用者选择应用系统的各种功能;
管理应用系统,控制各种功能模块的运行。
菜单的基本类型:弹出式菜单(如右击后)、下拉式菜单。
几个常用术语:
菜单条——菜单条出现在窗体标题的下面,包含每个菜单的标题。
菜单——菜单包含命令列表或子菜单名。
菜单项——菜单中列出的每一项。
子菜单——从某个菜单项分支出来的另外的一个菜单。具有子菜单的菜单项右边带有一个三角符号标志。
分隔条——分隔条是在菜单项之间的一条水平直线,用于修饰菜单。
弹出式菜单——弹出式菜单是另一种形式的菜单,在按下鼠标右键时出现,它是一个上下文相关的菜单。
二、菜单编辑器
使用菜单编辑器可以为应用程序创建自定义菜单并定义其属性,利用这个编辑器,可以建立下拉式菜单,最多可达6层。
启动菜单编辑器的方法有4种(先选中一个窗体,使之为活动窗体):
• 使用菜单“工具”/“菜单编辑器”;
• 单击工具栏中的“菜单编辑器”按钮;
• 键盘快捷键CTRL+E;
• 在要建立菜单的窗体上单击右键,在弹出菜单中选择“菜单编辑器”。
启动后,弹出菜单设计窗口。

菜单编辑器窗口分为三个部分:数据区、编辑区和菜单项显示区。
1、数据区
用来输入或修改菜单项、设置属性。其中:
"标题"项:在提供的文本输入框中可以输入菜单名或命令名,这些名字出现在菜单之中。输入的内容同时也显示在设计窗口下方的显示窗口中(相当于控件的Caption属性)。如果在该栏中输入一个减号(-),则可在菜单中加入一条分隔线。
"名称"项:在文本输入框中可以为菜单名及各菜单项输入控制名。控制名是标识符(相当于控件的Name属性),仅用于访问代码中的菜单项,它不会在菜单中出现。菜单名和每个菜单项都是一个控件,都要为其取一个控制名。
"索引"项:当几个菜单项使用相同的名称时,把它们组成控件数组,可指定一个数字值来确定每一个菜单项在控件数组中的位置。该位置与控件的屏幕位置无关。
"快捷键"项:允许为每个菜单项选择快捷键(热键)。
"帮助上下文ID"项:可在该文本框中输入数值,这个值用来在帮助文件(用HelpFile属性设置)中查找相应的帮助主题。
"协调位置"项:用来确定菜单或菜单项是否出现或在什么位置出现。该列表有4个选项:
0-None 菜单项不显示
1-Left 菜单项靠左显示
2-Middle 菜单项居中显示
3-Right 菜单项靠右显示
"复选"项:允许在菜单项的左边设置复选标记。它不改变菜单项的作用,也不影响事件过程对任何对象的执行结果,只是设置或重新设置菜单项旁的符号。利用这个属性,可以指明某个菜单项当前是否处于活动状态。
"有效"项:决定菜单的有效状态,由此选项可决定是否让菜单对事件做出响应,而如果希望该项失效,则也可清除事件。默认状态为Ture。
"可见"项:决定菜单的可见状态,即是否将菜单项显示在菜单上。默认状态为Ture。
" 显示窗口列表"项:当该选项被设置为“On”(框内有“√”)时,将显示当前打开的一系列子窗口。用于多文档应用程序。
"确定":关闭菜单编辑器,并对选定的最后一个窗体进行修改。
"取消": 关闭菜单编辑器,取消所有修改。
2、编辑区
共有7个按钮。
“下一个”按钮:将选定移动到下一行,开始一个新的菜单项(与回车键作用相同)。
“插入”按钮:在列表框的当前选定行上方插入一行,可在这一位置插入一个新的菜单项。
“删除”按钮:删除当前选定行(条形光标所在行),即删除当前菜单项。
"左、右箭头":每次单击都把选定的菜单向左、右移一个等级(用内缩符号显示),一共可以创建五个子菜单等级。
"上、下箭头":用来在菜单项显示区中上下移动菜单项的位置。
3、菜单项显示区(菜单列表)
位于菜单设计窗口的下部,输入的菜单项在这里显示出来,并通过内缩符号(…)表明菜单项的层次。条形光标所在的菜单项是“当前菜单项”。
说明:
菜单项是一个总的名称,包括4个方面的内容:菜单名(菜单标题)、菜单命令、分隔线和子菜单。
内缩符号由4个点组成,它表明菜单项所在的层次,一个内缩符号(4个点)表示一层,两个内缩符号(8个点)表示两层……最多20个点,即5个内缩符号,它后面的菜单项为第六层。如果一个菜单项前面没有内缩符号,则该菜单为菜单名,即菜单的第一层。
只有菜单名没有菜单项的菜单称为“顶层菜单”(Top-level menu),在输入这样的菜单项时,通常在后面加上一个惊叹号(!)。
如果在标题栏内只输入一个“-”,则产生一个分隔线。
除分隔线外,所有的菜单项都可以接收Click事件。
在输入菜单项时,如果在字母前加上“&”,则显示菜单时在该字母下加上一条下划线,可以通过Alt+带下划线的字母打开菜单或执行相应的菜单命令。
三、用菜单编辑器建立菜单
下面通过一个简单的例子说明菜单程序设计的基本方法和步骤。
例1 设计一个具有算术运算(+、-、×、/)及清除功能的菜单。从键盘上输入两个数,利用菜单命令求出它们的和、差、积、商,并显示出来。
根据题意,可以将菜单分为3个主菜单项,分别为“计算加、减”、“计算乘、除”和“清除与退出”,它们各有两个子菜单,即:
“计算加、减”的子菜单项:加、减
“计算乘、除”的子菜单项:乘、除
“清除与退出”的子菜单项:清除、退出
另外,为了输入和显示,再建立两个文本框(输入数据)和四个标签。
1、界面:

其中Lable4的BorderStyle属性设置为1。
2、菜单项属性:

分类 标题 名称 内缩符号 热键
主菜单项1
子菜单项1
子菜单项2
主菜单项2
子菜单项1
子菜单项2
主菜单项1
子菜单项1
子菜单项2 计算加、减


计算乘、除


清除与退出
清除
退出 Calc1
Add
Min
Calc2
Mul
Div
Calc3
Clean
Quit 无
1
1

1
1

1
1 无
Ctrl+A
Ctrl+B

Ctrl+C
Ctrl+D

Ctrl+E
Ctrl+F
3、设计菜单:
步骤:
打开“菜单编辑器。
在标题栏中键入“计算加、减”(主菜单项1),在菜单项显示区出现同样的标题名称。
按Tab键或用鼠标把输入光标移到“名称”栏。
在“名称”栏中键入“Calc1”,此时菜单项显示区中没有变化。
单击编辑区中“下一个”按钮,菜单项显示区中条形光标下移,同时“标题”栏、“名称”栏被清空,光标回到“标题”栏。
同样在“标题”栏和“名称”栏分别输入“加”和“Add”。
单击编辑区的右箭头“→”,菜单显示区的“加”右移,同时在左侧出现一个内缩符号,表明“加”是“计算加、减”的下一级菜单。
单击“快捷键”右端的箭头,从中选出“Ctrl+A”作为“加”菜单项的热键,此时,在该菜单项右侧出现“Ctrl+A”。
同样建立“减”菜单项:“标题”为“减”;“名称”为“Min”;热键为“Ctrl+B”。
单击“下一个”按钮,建立主菜单项2,由于要建立的是主菜单项,所以要消除内缩符号。单击左箭头“←”,内缩符号消失,即可建立主菜单。
其它两个主菜单的建立与前面步骤类似,不再重复。设计完成后的窗口如下图。“确定”后结束。

设计完成后,窗体顶行显示主菜单项,单击某个主菜单项,即可下拉显示其子菜单。

4、程序代码:
每个菜单项都可以接收Click事件。每个菜单项都有一个名字(Name属性),将这个名字与Click放在一起,组成Click事件过程。
Option Explicit
Dim x As Single
________________________________________
Private Sub Add_Click()
x = Val(Text1.Text) + Val(Text2.Text)
Label4.Caption = Str$(x)
End Sub
________________________________________
Private Sub Min_Click()
x = Val(Text1.Text) - Val(Text2.Text)
Label4.Caption = Str$(x)

End Sub
________________________________________
Private Sub Mul_Click()
x = Val(Text1.Text) * Val(Text2.Text)
Label4.Caption = Str$(x)

End Sub
________________________________________
Private Sub Div_Click()
If Text2.Text = "0" Or Text2.Text = "" Then
MsgBox "除数不能为0!"
Else
x = Val(Text1.Text) / Val(Text2.Text)
Label4.Caption = Str$(x)
End If
End Sub
________________________________________
Private Sub Clean_Click()
Text1.Text = ""
Text2.Text = ""
Label4.Caption = ""
Text1.SetFocus
End Sub
________________________________________
Private Sub Quit_Click()
End
End Sub
5、运行程序:
在两个文本框中输入数字后,分别单击各菜单项或热键,看一看执行结果。
[程序演示] [程序下载]
本例中的“有效”属性和“可见”属性采用默认的“True”,只有在必要时才设置其它属性。下面将讨论这些情况。
四、菜单项的控制
在使用Windows或VB菜单时,已见过“与众不同”的菜单项,如有的呈灰色,单击这类菜单项不执行任何操作;有的菜单项前有“√”号,或菜单项的某个字母下面有下划线等等。下面将介绍如何在菜单中增加这些属性。
1、菜单项的有效属性(有效性控制)
为了使程序正常运行,有时需要使某些菜单项失效,以防止出现误操作。例如前面的例子中,只有在文本框中输入数字后才能进行运算,否则运算没有意义。因此,如果尚未输入数据,则应使执行加、减、乘、除的菜单项失效,在输入数据后才生效。为此,可增加下面两个事件过程:
Private Sub Text1_Change()
If Text1.Text = "" Then
Add.Enabled = False
Min.Enabled = False
Mul.Enabled = False
Div.Enabled = False
Else
Add.Enabled = True
Min.Enabled = True
Mul.Enabled = True
Div.Enabled = True
End If
End Sub
________________________________________
Private Sub Text2_Change()
If Text2.Text = "" Then
Add.Enabled = False
Min.Enabled = False
Mul.Enabled = False
Div.Enabled = False
Else
Add.Enabled = True
Min.Enabled = True
Mul.Enabled = True
Div.Enabled = True
End If
End Sub
除增加上述两个事件过程外,还要取消Add、Min、Mul、Div等4个菜单项的“有效”属性设置。
方法:打开“菜单编辑器”窗口,把对应于这4个菜单项的数据区中的“有效”属性复选框中的“√”去掉即可。
2、菜单项的复选属性(菜单项的标记)
所谓菜单项标记,就是在菜单项前加上一个“√”。
它有两个作用:
• 一是明显地表示当前某个(或某些)命令状态是“On”或“Off”;
• 二是可以表示当前选择的是哪个菜单项。
增加方法:
• 在“菜单编辑器”窗口中,由“复选”属性设置,前面有“√”则为“True”,否则为“Flase”。
• 也可在应用程序代码中设置。
一般来说,菜单项标记通常是动态的加上或取消的,所以,常在程序代码中根据执行情况设置。
例2 设计一个菜单,该菜单有一个主菜单项和若干个子菜单项。当单击子菜单项时,分别显示十进制、八进制和十六进制数,并在相应的菜单项前面加上“√”标记。
界面:
一个文本框、6个标签。

菜单属性:

标题 名称 内缩符号 复选
显示数字
八进制
十进制
十六进制
清除
退出 Numsys
Octv
Dec
Hexv
Clean
Quit 无
1
1
1
1
1 无





设计菜单:

编写代码:
Option Explicit
Dim answer As Single
________________________________________
Private Sub octv_Click()
answer = Val(Text1.Text)
Octv.Checked = True
Dec.Checked = False
Hexv.Checked = False
Clean.Checked = False
Quit.Checked = False
Label5.Caption = Oct$(answer) '十进制转换为八进制

End Sub
________________________________________
Private Sub Hexv_Click()
answer = Val(Text1.Text)
Octv.Checked = False
Dec.Checked = False
Hexv.Checked = True
Clean.Checked = False
Quit.Checked = False
Label6.Caption = Hex$(answer) '十进制转换为十六进制

End Sub
________________________________________
Private Sub dec_Click()
answer = Val(Text1.Text)
Octv.Checked = False
Dec.Checked = True
Hexv.Checked = False
Clean.Checked = False
Quit.Checked = False
Label4.Caption = Format(answer)
End Sub
________________________________________
Private Sub Clean_Click()
Text1.Text = ""
Octv.Checked = False
Dec.Checked = False
Hexv.Checked = False
Clean.Checked = False
Quit.Checked = False
Clean.Checked = True
Label4.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
End Sub
________________________________________
Private Sub Quit_Click()
End
End Sub
[程序演示] [程序下载]
例3 见教材P243。
在窗体上添加一个文本框,用来输入要显示的文本。
菜单属性:

菜单 标题 名称 索引 快捷键
文件
....新建
....打开
....关闭
....-
....退出
字体
....粗体
....斜体 文件(&F)
新建(&N)
打开 (&O)
关闭 (&C)
-
退出 (&X)
字体
粗体
斜体
追问
谢谢。。不过你这个真的好多啊,看得我眼都花了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式