VisualBasic工具栏、对话框

VisualBasic工具栏、对话框,第1张

VisualBasic工具栏、对话框,第2张

工具栏
工具栏可以用来进一步增强应用程序的菜单界面。工具栏包含工具栏按钮,通过这些按钮可以快速访问应用程序中最常用的命令。例如,Visual Basic的工具栏包含执行常见命令的ToolBarButton,如“打开”(打开现有项目)、“保存”(保存当前项目)等。

创建工具栏
工具栏(也称为时钟或控制栏)已经成为许多基于Windows的应用程序的标准功能。工具栏提供对应用程序中最常用菜单命令的快速访问。使用工具栏控件创建工具栏非常简单方便。它在Visual Basic的专业版和企业版中都有提供。如果您使用的是Visual Basic学习版,可以按照本章后面的“协调菜单和工具栏的外观”中所述手动创建工具栏。
下面的示例演示了为MDI应用程序创建工具栏的过程;在标准窗体上创建工具栏的过程基本上是相同的。
要手动创建工具栏,请按照下列步骤操作:
1。在MDI表单上放置一个图片框。图片的宽度会自动拉伸,直到填满MDI窗口空。工作区空是表单框架内的区域,不包括表单上的标题栏、菜单栏或所有工具栏、状态栏或滚动条。
请注意,只有直接支持Align属性的控件才能放在MDI窗体上(图片框是支持该属性的标准控件)。
2。在图片框中,您可以将任何想要显示的控件放在工具栏上。通常,工具栏按钮是用CommandButton或Image控件创建的。图6.16显示了一个带有图像控件的工具栏。
要将控件添加到图片框中,请单击工具栏中的“控件”按钮,然后在图片框中绘制它。
请注意,当MDI窗体包含图片框时,MDI窗体的内部区域不包含图片框。例如,MDI窗体的ScaleHeigh属性返回MDI窗体的内部高度,其中不包括图片框的高度。
[br/]3。设置设计时属性。
使用工具栏的一个好处是它可以显示一个生动的命令图标。图像控件作为工具栏按钮是一个很好的选择,因为它可以用来显示位图。在设计时设置其Picture属性以显示位图;这样,当按钮被点击时,它可以提供命令执行的可视信息。还可以通过设置按钮的ToolTipText属性来使用工具提示,以便当用户将鼠标指针放在按钮上时,可以显示工具栏按钮的名称。
4。编写代码
因为工具栏经常被用来提供对其他命令的快速访问,所以大多数时候其他过程都是从每个按钮的Click事件中调用的,比如对应的菜单命令。
提示:您可以使用不显示工具栏的MDI窗体来使用运行时不可见的控件(如计时器控件)。为此,请在MDI窗体上放置一个图片框,将控件放入图片框中,然后将图片框的Visible属性设置为False。

工具栏的代码
工具栏用于提供访问某些应用程序命令的快捷方式。例如,图6.16中工具栏上的第一个按钮是新建文件命令的快捷键。现在,您可以在MDINotePad示例应用程序的三个位置请求创建新文件。
1。在MDI窗体上(MDI窗体上“文件”菜单上的“新建”命令)。
2。在子窗体上(子窗体文件菜单上的新建命令)。
3。在工具栏上(“新建文件”按钮)。
与其重复三次这段代码,不如从子窗体的mnuFileNew_Click事件中取出原代码,放到子窗体的一个公共过程中。您可以从上述任何事件过程中调用此过程。下面是一个示例:
'此例程在公共过程中。
Public Sub file New()
Dim frmNewPad As New frmNotePad
frmNewPad。显示
结束Sub

在子窗体的“文件”菜单上选择“新建”。
Private Sub mnuchildFileNew _ Click()
FileNew
End Sub

在MDI窗体的“文件”菜单上选择“新建”。
Private Sub mnumdiFileNew _ Click()
frmNotePad。FileNew
End Sub

单击工具栏上的“新建文件”按钮。
Private Sub btnFileNew _ Click()
frmNotePad。FileNew
End Sub

协调菜单和工具栏的外观
当其他应用程序提供的对象在窗体中被激活时,有很多方法可以使对象的菜单和工具栏出现在容器窗体中;但是,有必要指定它们将如何显示。这个过程称为用户界面协调,因为Visual Basic和链接或嵌入的对象必须在容器形式中协调空。

控制菜单的外观
通过设置窗体的NegotiateMenus属性,可以确定链接或嵌入对象的菜单是否出现在容器窗体中。如果子窗体的NegotiateMenus属性设置为True(默认值),并且容器具有已定义的菜单栏,则当此对象被激活时,其菜单将被放置在容器的菜单栏中。如果容器没有菜单栏,或者NegotiateMenus属性设置为False,则当激活该对象时,该对象的菜单不会出现。
请注意,NegotiateMenus属性不适用于MDI窗体。

控制工具栏的外观
MDI窗体的NegotiateToolbars属性确定链接或嵌入对象的工具栏是具有不固定的调色板,还是位于父窗体上。此功能不要求工具栏出现在MDI父窗体上。如果MDI窗体的NegotiateToolbars属性设置为True,则该对象的工具栏将出现在MDI父窗体上。如果NegotiateToolbars设置为False,则该对象的工具栏是一个不固定的调色板。
请注意,NegotiateToolbars属性仅用于MDI窗体。
如果MDI窗体包含工具栏,它通常包含在父窗体的PictureBox控件中。图片的Negotiate属性决定了容器的工具栏在被激活时是继续显示还是被对象的工具栏替换。如果Negotiate设置为True,则除了容器的工具栏之外,还将显示对象的工具栏。如果Negotiate设置为False,对象的工具栏将替换容器的工具栏。
请注意,菜单和工具栏之间的协调只发生在支持字段激活的可插拔对象上。有关字段激活的详细信息,请参考第10章“用组件编程”。使用以下步骤查看这三个属性是如何交互的。
要使菜单与工具栏协调一致,请按照下列步骤操作:
1。在MDI窗体中添加工具栏。这在本章前面的“创建工具栏”中有所描述。
2。将可插入对象放在子窗体上。
3。设置NegotiateMenus、NegotiateToolbars和Negotiate属性。
4。运行该应用程序,然后双击该对象。

对话框

在基于Windows的应用程序中,对话框用于:
提示用户提供应用程序继续执行所需的数据。
向用户显示信息。
例如,在Visual Basic中,“打开文件”对话框用于显示现有项目。VisualBasic中的“关于”对话框也是如何使用该对话框显示信息的示例。单击菜单栏上的“帮助”,并选择“关于Visual Basic”菜单项以显示“关于”对话框。

模式和无模式对话框
对话框要么是模式的,要么是无模式的。模式对话框,在您可以继续操作应用程序的其他部分之前,必须关闭(隐藏或卸载)该对话框。例如,如果一个对话框要求您在切换到另一个窗体或对话框之前单击“确定”或“取消”,它就是模式对话框。
Visual Basic中的“关于”对话框是模式对话框。显示重要消息的对话框应该总是模式化的,也就是说,在继续之前,总是要求用户关闭对话框或响应它的消息。
无模式对话框允许您在对话框和其他窗体之间切换焦点,而无需关闭对话框。当对话框显示时,您可以在当前应用程序的其他地方继续工作。很少使用非模态对话框。Visual Basic中“编辑”菜单上的“查找”对话框是非模态对话框的一个例子。无模式对话框用于显示常用的命令和信息。
若要将窗体显示为模式对话框,请
1。使用Show方法,其样式参数值为vbModal(值为1的常数)。例如:
'将frmAbout显示为模式对话框。
frm关于。若要将窗体显示为无模式对话框,请
2。使用不带style参数的show方法。
例如:
'将frmAbout显示为无模式对话框。
frmAbout。Show
注意,如果窗体显示为模式对话框,Show方法后的代码只能在对话框关闭后执行。但是,当窗体显示为无模式对话框时,Show方法背后的代码将在窗体显示后立即执行。
show方法还有另一个可选参数owner,可用于指定表单的父子关系。您可以将表单名称传递给该参数,使该表单成为新表单的所有者。要将一个窗体显示为另一个窗体的子窗体,请
这里的Show方法有两个参数:style和owner。
例如:
'将frmAbout显示为frmMain的无模式子窗体。
frm关于。Show vbmodeless,frmmain
在Show方法中使用owner参数可确保对话框在其父窗体最小化时最小化,或者在其父窗体关闭时卸载。

预定义对话框的使用
在应用程序中添加对话框最简单的方法就是使用预定义对话框,因为你不必担心设计、加载或显示对话框。但是,控件的外观应该受到限制。预定义的对话框总是模态的。
下表列出了在Visual Basic应用程序中添加预定义对话框时可以使用的函数。

使用输入框提示输入
。应用InputBox函数来请求数据。该功能显示需要数据输入的模式对话框。图6.17所示的文本输入框提示输入要打开的文件的名称。

以下代码显示了如图6.17所示的输入框。
filename = InputBox(" enter file to open:"," file open")
注意,使用输入框功能时,对对话框各个部分的控制非常有限。只有标题栏中的文本、显示给用户的命令提示符、对话框在屏幕上的位置以及是否显示帮助按钮可以更改。
有关详细信息,请参考《语言参考》中的“InputBox函数”。

使用消息对话框显示信息
您可以使用MsgBox函数获得“是”或“否”响应,并在对话框中显示短消息,如错误、警告或期望。阅读完这些消息后,您可以选择一个按钮来关闭对话框。
如果文件无法打开,名为Text Editor的应用程序将显示一个消息对话框,如图6.18所示。

下面的代码显示一个如图6.18所示的消息框:
msgbox "尝试打开文件时遇到错误,_
请重试。"、vbstimulation、“文本编辑器”
注意,所谓的模式可以仅限于应用。如果消息框的模式仅限于该应用程序(默认),则在此对话框消失之前不能切换到该应用程序的其他部分,但可以切换到其他应用程序。系统的模式消息框不允许切换到其他应用程序,直到消息框消失。
具体请参考《语言参考》中的“MsgBox函数”。

将窗体用作自定义对话框
自定义对话框是用户使用控件创建的窗体,这些控件包括命令按钮、选择按钮和文本框,可以接收应用程序的信息。通过设置属性值来自定义表单的外观。您也可以编写在运行时显示对话框的代码。
若要创建自定义对话框,可以从新表单开始或自定义现有对话框。如果重复太多,可以构建一个可以在很多应用程序中使用的对话框集合。
若要自定义现有对话框,请按照下列步骤操作:
1。从“项目”菜单中选择“添加表单”,将现有表单添加到项目中。
2。从“文件”菜单中选择“文件名另存为”并输入新的文件名(这可以防止表单的现有版本被更改)。
3。根据需要自定义表单的外观。
4。在代码窗口中自定义事件过程。
要创建新对话框,请按照下列步骤操作:
1。从“项目”菜单中选择“添加表单”。
-或-
单击工具栏上的“表单”按钮创建新表单。
2。如有必要,自定义表单的外观。
3。在代码窗口中自定义事件过程。
定义自定义对话框的外观有很大的自由度。它可以是固定的或可移动的,模态的或非模态的。它可以包含不同类型的控件;然而,对话框通常不包括菜单栏、窗口滚动条、最小化和最小化按钮、状态栏或可变大小的边框。本主题的其余部分将讨论如何创建典型类型的对话框。

“添加标题”
对话框应该始终有一个标识它的标题。若要创建标题,请将窗体的Caption属性设置为将在标题栏中显示的文本字符串。通常,此步骤在设计时使用“属性”窗口完成,但也可以在代码中完成。比如:
frm about。caption = "about"
提示如果要完全删除这个标题栏,可以将窗体的ControlBox、MinButton、MaxButton设置为False;将BorderStyle设置为具有固定大小(0、1或3)的设置,并将标题设置为空 string(" ")。

设置标准对话框的属性
一般来说,当用户响应对话框时,他们首先提供信息,然后用“确定”或“取消”命令按钮关闭对话框。因为对话框是临时的,所以用户通常不需要移动、调整大小、最小化或最小化它。因此,与新表单一起出现的可变大小边框类型、控制菜单框、溶解按钮和最小化按钮在大多数对话框中是不必要的。
您可以通过设置BorderStyle、ControlBox、MaxButton和MinButton属性来删除这些项目。例如,“关于”对话框可能使用下列属性设置。

记住,如果删除控制菜单框(ControlBox = False),必须为用户提供其他退出对话框的方法。这通常是通过在对话框中添加确定、取消或退出命令按钮,并在隐藏或卸载对话框的Click button事件中添加代码来实现的。

添加和放置命令按钮
模式对话框必须至少包含一个命令按钮才能退出对话框。通常使用两个命令按钮:一个按钮启动操作,另一个按钮关闭对话框而不做任何更改。通常,这两个按钮的标题属性设置为OK和Cancel。在此方案中,“确定”命令按钮的Default属性设置为True,而“取消”命令按钮的Cancel属性设置为True。虽然“确定”和“取消”是最常用的按钮,但也可以使用其他按钮标题组合。

显示的对话框通常使用Label控件来显示错误信息或命令提示,并使用一个或两个命令按钮来执行操作。例如,您可以为徽标的Caption属性指定错误消息或命令提示,并为两个命令按钮控件的Caption属性指定Yes和No。当用户选择“是”时,一个动作发生,当用户选择“否”时,另一个动作发生。
这类对话框的命令按钮通常放在对话框的底部或右侧,而顶部或左侧按钮是默认按钮,如图6.19所示。

Set Default、Cancel和Focus
命令按钮控件提供以下属性:
Default
Cancel
TabIndex
TabStop Default
按钮是用户按ENTER键时选择的按钮。在窗体上,只能将一个命令按钮的Default属性设置为True。按ENTER调用默认命令按钮的Click事件。该函数与编辑控件(如TextBox)结合使用。例如,您可以在文本框中键入数据,然后按ENTER键生成Click事件,而不是选择“确定”按钮。
“取消”按钮是按下ESC键时选择的按钮。在窗体上,只能将一个命令按钮的Cancel属性设置为True。按ESC调用取消命令按钮的Click事件。“取消”按钮也可以是默认的命令按钮。若要指定对话框的“取消”按钮,请将命令按钮的“取消”属性设置为True。
提示一般来说,代表最可靠或最安全操作的按钮应该是默认按钮。例如,在“文本替换”对话框中,默认按钮应该是“取消”,而不是“全部替换”。
您还可以指定在显示对话时获得焦点的按钮。当窗体显示时,TabIndex设置最低的控件将获得焦点。按ENTER键将调用默认命令按钮或具有焦点的命令按钮的Click事件。若要在显示窗体时为命令按钮提供焦点,请将命令按钮的TabIndex设置为0,并将其TabStop属性设置为True。还可以使用SetFocus方法在显示窗体时将焦点给予指定的控件。
有关更多信息,请参考《语言参考》中的TabIndex属性和TabStop属性。

使对话框上的控件无效
有时有必要使控件无效,因为它们的操作在当前上下文中不适用。例如,当第一次显示Visual Basic的查找对话框时,查找下一个按钮应该无效,如图6.20所示。将对话框上控件的Enabled属性设置为False会使其无效。
若要使对话框上的控件无效,请
1。将每个控件的Enabled属性设置为False。例如:
cmdfindnext . enabled = false
cmdreplace . enabled = false

显示自定义对话框
使用与应用程序中其他窗体相同的方法来显示对话框。当应用程序运行时,启动窗体将自动加载。如果希望第二个窗体或对话框出现在应用程序中,应该使用加载和显示它的代码。同样,如果您希望一个窗体或对话框消失,您应该编写代码来卸载或隐藏它。
下面的代码在用户选择“帮助”菜单中的“关于”菜单项时显示“关于”对话框。
Private submnhulpabout _ click()
'这里使用style = vbModal的Show方法将对话框显示为一种模式。
frmAbout。显示vbModal
End Sub


位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualBasic工具栏、对话框

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情