界面设计
对话框的分类:Visual Basic.NET中的对话框分为三种类型,即预定义对话框、自定义对话框和通用对话框。
通用对话框控件
Visual Basic.NET的通用对话框控件共有6种 :
OpenFileDialog,SaveFileDialog,FolderBrowserDialog,FontDialog,ColorDialog,PrintDialog,PrintPreviewDialog
打开文件对话框
⒈ 主要属性
⑴ Name属性
⑵ AddExtension属性
⑶ CheckFileExists属性
⑷ CheckPathExists属性
⑸ DefaultExt属性
⑹ Title属性
⑺ FileName属性
⑻ FileNames属性
⑼ Fileter属性
⑽ FilterIndex属性
⑾ InitiaDirectory属性
⑿ MultiSelect属性
⒀ RestoreDirectory属性
⒁ ShowHelp属性
⒂ ShowReadOnly属性
⒃ ReadOnlyChecked属性
⒉ 方法
⑴ Dispose方法:用来释放被对话框使用的所有资源。
⑵ OpenFile方法:以只读方式打开在对话框中所选择的文件,要打开的文件由FileName属性指定。如果不使用该方法,则必须设置ShowReadOnly和ReadOnlyChecked属性,并在对话框中选择只读复选框。
⑶ ShowDialog方法:显示对话框。用该方法可以显示“打开文件”对话框
3. 事件
⑴ FileOk事件:当用户单击文件对话框中的“打开”按钮时发生该事件。
⑵ HelpRequest事件:当用户单击通用对话框中的“帮助”按钮时发生该事件。注意,为了使用该事件,必须把对话框控件的ShowHelp属性设置为True。
⒋ 打开文件对话框举例
编写程序,建立“打开”对话框,并用该对话框打开指定的文件。
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "通过打开文件对话框打开文件"
Button1.Text = "选择文件"
Button2.Text = "执行文件"
Button3.Text = "退 出"
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ret As Short
OpenFileDialog1.FileName = ""
OpenFileDialog1.ShowReadOnly = True
OpenFileDialog1.ReadOnlyChecked = True
OpenFileDialog1.InitialDirectory = "c:/"
OpenFileDialog1.Filter = "All Files |*.*|(*.exe)|*.exe|(*.TXT)|*.TXT"
OpenFileDialog1.FilterIndex = 2
OpenFileDialog1.Title = "打开.EXE文件"
OpenFileDialog1.ShowDialog()
SelectFile = OpenFileDialog1.FileName
If SelectFile = "" Then
ret = MsgBox("没有选择文件", 37, "检查")
If ret = 2 Then
Close()
End If
Else
MsgBox("所选择的文件是:" & SelectFile)
End If
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x
x = Shell(SelectFile, AppWinStyle.NormalFocus)
End Sub
Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Close()
End Sub
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
保存文件对话框
与OpenFileDialog控件不同的属性主要有两个,即CreatPrompt和OverwritePrompt。
编写程序,在格式文本框中显示一些信息,然后用保存文件对话框把该文本框中的内容存入一个文件中。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "通过保存文件对话框保存文件"
Button1.Text = "保存"
Button2.Text = "退出"
Dim S As String
Dim cl As String = Chr(13) & Chr(10)
S = " 中南大学校庆" & cl
S = S & "沧桑巨变五十年," & cl
S = S & "桃李芬芳硕果甜。" & cl
S = S & "遥向南郊荒草地," & cl
S = S & "已成岳麓科教园。" & cl
RichTextBox1.Text = S
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
SaveFileDialog1.DefaultExt = "DOC"
SaveFileDialog1.FileName = "Test.doc"
SaveFileDialog1.Filter = "Word文件(*.doc)|*.TXT|All files(*.*)|*.*"
SaveFileDialog1.FilterIndex = 1
SaveFileDialog1.Title = "保存为 .doc文件(*.doc)"
SaveFileDialog1.InitialDirectory = "E:/"
SaveFileDialog1.RestoreDirectory = True
SaveFileDialog1.CheckFileExists = True
SaveFileDialog1.CreatePrompt = True'''''''''''''''''
SaveFileDialog1.OverwritePrompt = True''''''''''''''
SaveFileDialog1.ShowDialog()
End Sub
Private Sub SaveFileDialog1_FileOk(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
If Trim(SaveFileDialog1.FileName <> "") Then
RichTextBox1.SaveFile(SaveFileDialog1.FileName)
End If
End If
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Close()
End Sub
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
其他对话框
⒈ 颜色(Color)对话框
⑴ Name属性:是一个字符串,用来设置颜色对话框控件的名称。
⑵ AllowFullOpen属性:是一个Boolean值,用来确定颜色对话框中“规定自定义颜色按钮”是否有效。
⑶ AnyColor属性
⑷ Color属性:其值为Color结构。
⑸ FullOpen属性
⑹ SolidColorOnly属性
方法:
⑴ ShowDialog方法:显示颜色对话框。
⑵ Reset方法:恢复颜色对话框的默认设置。
用颜色对话框设置背景色。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ColorDialog1.AllowFullOpen = True
Me.Text = "颜色对话框"
Button1.Text = "文本框背景"
Button2.Text = "窗体背景“
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
ColorDialog1.FullOpen = True
ColorDialog1.ShowDialog()
TextBox1.BackColor = ColorDialog1.Color
Button1.BackColor = ColorDialog1.Color
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
ColorDialog1.FullOpen = True
ColorDialog1.ShowDialog()
Me.BackColor = ColorDialog1.Color
Button2.BackColor = ColorDialog1.Color
End Sub
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
⒉ 字体(Font)对话框
⑴ Color属性:该属性用来设置所选择的字体的颜色,默认值为Black(黑色)。
⑵ FontMustExit属性
⑶ Font属性
⑷ Maxsize属性
⑸ MinSize属性
⑹ ShowApply属性
⑺ ShowColor属性
⑻ ShowEffects属性
⑼ ShowHelp属性
下方法和事件:
⑴ ShowDialog方法:显示字体对话框。
⑵ Reset方法:恢复字体对话框的默认设置。
⑶ Apply事件:当用户单击字体对话框中的“应用”按钮时触发该事件。
用字体对话框设置文本框中显示的字体。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Text = "字体对话框试验"
Button1.Text = "设置字体"
Button2.Text = "退出"
TextBox1.Text = "用字体对话框设置文本框中的字体"
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
FontDialog1.FontMustExist = True
FontDialog1.ShowEffects = True
FontDialog1.ShowColor = True
FontDialog1.Color = Color.Red
FontDialog1.ShowDialog()
If FontDialog1.ShowDialog = DialogResult.OK Then
TextBox1.Font = FontDialog1.Font
TextBox1.ForeColor = FontDialog1.Color
End If
End Sub
Private Sub FontDialog1_Apply(ByVal sender As Object, ByVal e As System.EventArgs) Handles FontDialog1.Apply
TextBox1.Font = FontDialog1.Font
TextBox1.ForeColor = FontDialog1.Color
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Close()
End Sub
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
菜单设计
菜单可分为两种基本类型,即弹出式菜单和下拉式菜单,其中弹出式菜单也称为“上下文菜单”(ContextMenu),下拉式菜单也称为“主菜单”(MainMenu)。
⒈ 菜单的属性
⑴ Name属性
⑵ Checked属性
⑶ DefaultItem
⑷ Enabled属性
⑸ Mergeorder属性
⑹ MergeType属性
⑺ RadioCheck属性
⑻ ShortCut属性
⑼ ShowShortCut属性
⑽ Text属性
⑾ Visible属性
⒉ 事件和方法
菜单项常用的事件有两个,即Click和Select, 当把鼠标光标移到菜单项上时,将引发Select事件。
① Add方法:把一个菜单项加到菜单集合中,作为当前菜单项的下一级菜单项。
② Remove方法:该方法用来从菜单项集合中删除指定的菜单项。
菜单控件MainMenu
弹出式菜单控件ContextMenu:为了显示弹出式菜单,必须把弹出式菜单的名称与窗体或所需要的控件相关联,这可以通过窗体或控件的ContextMenu属性来设置。如:TextBox1. ContextMenu=ContextMenu1
设计一个具有算述运算(+、—、×、/)及清除功能的菜单。从键盘上输入两个数,利用菜单命令求出它们和、差、积或商,并显示出来。
(略)
为文本框建立一个弹出式菜单,通过该菜单进行古诗词欣赏。
Dim cl As String = Chr(13) & Chr(10)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = ""
Me.Text = "古诗欣赏"
TextBox1.ContextMenu = ContextMenu1
End Sub
Private Sub LB_KZX_Select(ByVal sender As Object, ByVal e As System.EventArgs) Handles LB_KZX.Select
Dim S As String
S = "该诗是李白于开元十三年(公元725年)准备离蜀漫游时所作。"
S = S & "诗中通过对明月、江水等的描绘,表达对友人的思念。"
TextBox1.Text = S
End Sub
Private Sub LB_KZX_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LB_KZX.Click
Dim S As String
S = " 峨眉山月歌" & cl & cl
S = S & "峨眉山月半轮秋," & cl
S = S & "影入平羌江水流。" & cl
S = S & "夜发清溪向三峡," & cl
S = S & "思君不见下渝州。"
TextBox1.Text = S
End Sub
Private Sub SS_Select(ByVal sender As Object, ByVal e As System.EventArgs) Handles SS.Select
Dim S As String
S = "这首诗以赤壁怀古为主题,将奔腾浩荡的大江波涛、"
S = S & "波澜壮阔的历史风云和千古而来风流人物,酣畅淋漓地"
S = S & "泼墨挥写于大笔之下,抒发了作者宏伟的政治抱负和豪迈"
S = S & "的英雄气概。"
TextBox1.Text = S
End Sub
Private Sub SS_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SS.Click
Dim S As String
S = " 念奴娇(赤壁怀古)" & cl & cl
S = S & "大江东去," & cl & "浪淘尽,千古风流人物。" & cl
S = S & "故垒西边,人道是、" & cl & "三国周郎赤壁。" & cl
S = S & "乱石穿空,惊涛拍岸," & cl & "卷起千堆雪。" & cl
S = S & "江山如画,一时多少豪杰。" & cl
S = S & "遥想公瑾当年," & cl & "小乔初嫁了,雄姿英发。" & cl
S = S & "羽扇纶巾,谈笑间、" & cl & "强虏灰飞烟灭。故国神游," & cl
S = S & "多情应笑我,早生华发。" & cl
S = S & "人生如梦,一樽还酹江月。" & cl
TextBox1.Text = S
End Sub
Private Sub MZY_Select(ByVal sender As Object, ByVal e As System.EventArgs) Handles MZY.Select
Dim S As String
S = "这首诗以短短的28个字,雕绘出一幅深有诗情的画面"
S = S & "和感动人心的意境。"
TextBox1.Text = S
End Sub
Private Sub MZY_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MZY.Click
Dim S As String
S = " 天净沙 秋思" & cl & cl
S = S & "枯藤老树昏鸦," & cl
S = S & "小桥流水人家," & cl
S = S & "古道西风瘦马。" & cl
S = S & "夕阳西下," & cl
S = S & "断肠人在天涯。"
TextBox1.Text = S
End Sub
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
多重窗体和多文档界面
多重窗体的操作
⒈ 设置窗体的特殊效果
⑴ 指定窗体的启动位置:通过窗体的StartPosition属性来设置 。
⑵ 总在最上面:使用窗体的TopMost属性,可以使窗体保持其可见性,即使在失去焦点后仍然如此。
⑶ 窗体的透明度。:Opacity属性,可用来调整窗体的“透明度” 。
编写程序,用“半透明”窗体显示信息。
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
Me.Opacity = 0.5
Dim S, CL As String
CL = Chr(13) & Chr(10)
S = "月落鸟啼霜满天," & CL
S = S & "江枫渔火对愁眠。" & CL
S = S & "姑苏城外寒山寺," & CL
S = S & "夜半钟声到客船。"
TextBox1.Text = S
End Sub
⑷ 滚动窗体:AutoScroll属性,可用来滚动窗体 。
⑸ 窗体尺寸:MaximumSize和MinimumSize,可以根据需要设置它们的值。
⒉ 与多重窗体程序设计有关的方法
⑴ Close方法:[窗体名称].Close。关闭指定的窗体,释放窗体所占用的资源
⑵ Show方法:[窗体名称.]Show。Show方法用来显示一个窗体。
⑶ ShowDialog方法:窗体名称.ShowDialog。将窗体显示为没有所有得窗口的模态对话框。
⑷ Hide方法:[窗体名称.]Hide
⑸ Me关键字:代表的是程序代码所在的窗体。
不能用Form2.Show来显示Form2窗体。这是因为,在Visual Basic.NET中,Form2是一个类名,不是窗体名称,为了引用窗体Form2,必须建立它的实例(instance),通过实例引用窗体:
Dim Fb As New Form2( )
Fb.Show( )
Me.Hide( )
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
多文档界面
建立一个MDI文本书写器。
Private Sub mnuFileNew_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuFileNew.Click
'建立form2的一个新实例,名为newdoc
Dim newdoc As New Form2
'设置子窗体的父窗体
newdoc.MdiParent = Me
'显示新窗体
newdoc.Show()
End Sub
Private Sub Form2_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
'扩展文本框,使它充满子窗体的内部区域
TextBox1.Height = Me.Height
TextBox1.Width = Me.Width
End Sub
'
'--------------------------------------------------------------------------------------------|||无敌分割线|---------
'
工具栏和状态栏
工具栏
在VB.NET中,用ToolBar控件来为窗体添加工具栏。
Private Sub ToolBar1_ButtonClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
Dim SelectedButtonIndex As Integer
SelectedButtonIndex = ToolBar1.Buttons.IndexOf(e.Button)
End Sub
可以在设计窗体时直接设计好工具栏按钮,也可以在程序运行以后,用编程的办法在响应某一个事件(比如窗体下载事件frmMain_Load)时调用Add方法来加入工具栏按钮。
状态栏
状态栏用来显示程序运行中一些动态的信息,比如键盘上Caps键的状态,光标在文档中位置等。在VB.NET中,用StatusBar控件为窗体添加状态栏。 状态面板属于类StatusBarPanel 。