Microsoft Word Visual Basic.NET程序设计案例教程正文.doc

Size: px
Start display at page:

Download "Microsoft Word Visual Basic.NET程序设计案例教程正文.doc"

Transcription

1 第 6 章 Windows 高级界面设计 任务 1 透明窗体 1. 运行界面运行界面如图 6-1 所示 6.1 高级窗体应用 图 6-1 运行界面 2. 功能 (1) 通过调整 TrackBar 控件的滚动块以改变窗体的透明度 (2) 程序启动时窗体的透明度发生渐变 知识点 1 Control 类 定义控件的基类, 控件是带有可视化表示形式的组件 Control 类实现向用户显示信息的类所需的最基本功能, 它处理用户通过键盘和指针设备所进行的输入, 还处理消息路由和安全 虽然它并不实现绘制, 但定义控件的边界 ( 其位置和大小 ), 同时还提供窗口句柄 (hwnd) 1. 主要属性 ( 如表 6-1 所示 ) 名称 AllowDrop BackColor BackgroundImage 表 6-1 Control 类主要属性说明 说明 获取或设置一个值, 该值指示控件是否可以接受用户拖放到它上面的数据 获取或设置控件的背景色 获取或设置在控件中显示的背景图像 Bottom 获取控件下边缘与其容器的工作区上边缘之间的距离 ( 以像素为单位 ) Bounds CanFocus CanSelect Capture ClientRectangle 获取或设置控件 ( 包括其非工作区元素 ) 相对于其父控件的大小和位置 ( 以像素为单位 ) 获取一个值, 该值指示控件是否可以接收焦点 获取一个值, 该值指示是否可以选中控件 获取或设置一个值, 该值指示控件是否已捕获鼠标 获取表示控件的工作区的矩形

2 96 Visual Basic.NET 程序设计案例教程 续表 名称 说明 ClientSize 获取或设置控件的工作区的高度和宽度 ContextMenu 获取或设置与控件关联的快捷菜单 ContextMenuStrip 获取或设置与此控件关联的 ContextMenuStrip Cursor 获取或设置当鼠标指针位于控件上时显示的光标 DefaultBackColor 获取控件的默认背景色 DefaultFont 获取控件的默认字体 DefaultForeColor 获取控件的默认前景色 DisplayRectangle 获取表示控件的显示区域的矩形 Dock 获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小 Enabled 获取或设置一个值, 该值指示控件是否可以对用户交互作出响应 Focused 获取一个值, 该值指示控件是否有输入焦点 Font 获取或设置控件显示的文字的字体 ForeColor 获取或设置控件的前景色 Handle 获取控件绑定到的窗口句柄 HasChildren 获取一个值, 该值指示控件是否包含一个或多个子控件 Height 获取或设置控件的高度 Left 获取或设置控件左边缘与其容器的工作区左边缘之间的距离 ( 以像素为单位 ) Location 获取或设置该控件的左上角相对于其容器的左上角的坐标 Margin 获取或设置控件之间的空间 MouseButtons 获取一个值, 该值指示哪一个鼠标按钮处于按下的状态 MousePosition 获取鼠标光标的位置 ( 以屏幕坐标表示 ) Name 获取或设置控件的名称 Right 获取控件右边缘与其容器的工作区左边缘之间的距离 ( 以像素为单位 ) Size 获取或设置控件的高度和宽度 TabIndex 获取或设置在控件的容器的控件的 Tab 键顺序 TabStop 获取或设置一个值, 该值指示用户能否使用 Tab 键将焦点放到该控件上 Text 获取或设置与此控件关联的文本 Top 获取或设置控件上边缘与其容器的工作区上边缘之间的距离 ( 以像素为单位 ) Visible 获取或设置一个值, 该值指示是否显示该控件 Width 获取或设置控件的宽度 2. 主要方法 ( 如表 6-2 所示 ) 名称 CreateGraphics Dispose Focus 表 6-2 Control 类主要方法说明说明为控件创建 Graphics 已重载 释放由 Control 使用的所有资源为控件设置输入焦点

3 续表 名称 说明 Hide 对用户隐藏控件 Invalidate 已重载 使控件的特定区域无效并向控件发送绘制消息 RectangleToClient 计算指定屏幕矩形的大小和位置 ( 以工作区坐标表示 ) RectangleToScreen 计算指定工作区矩形的大小和位置 ( 以屏幕坐标表示 ) Refresh 强制控件使其工作区无效并立即重绘自己和任何子控件 Show 向用户显示控件 Update 使控件重绘其工作区内的无效区域 3. 主要事件 ( 如表 6-3 所示 ) 表 6-3 Control 类主要事件说明 名称 Click DoubleClick DragDrop DragEnter DragLeave DragOver Enter GiveFeedback GotFocus Invalidated KeyDown KeyPress KeyUp Leave LostFocus MouseClick MouseDoubleClick MouseDown MouseEnter MouseHover MouseLeave MouseMove MouseUp MouseWheel Paint PreviewKeyDown Resize 在单击控件时发生 在双击控件时发生 在完成拖放操作时发生 在将对象拖入控件的边界时发生 在将对象拖出控件的边界时发生 在将对象拖到控件的边界上发生 进入控件时发生 在执行拖动操作期间发生 在控件接收焦点时发生 在控件的显示需要重绘时发生 在控件有焦点的情况下按下键时发生 在控件有焦点的情况下按下键时发生 在控件有焦点的情况下释放键时发生 在输入焦点离开控件时发生 当控件失去焦点时发生 在鼠标单击该控件时发生 当用鼠标双击控件时发生 说明 当鼠标指针位于控件上并按下鼠标键时发生 在鼠标指针进入控件时发生 在鼠标指针停放在控件上时发生 在鼠标指针离开控件时发生 在鼠标指针移到控件上时发生 在鼠标指针在控件上并释放鼠标键时发生 在移动鼠标轮并且控件有焦点时发生 在重绘控件时发生 在焦点位于此控件上的情况下, 当有按键动作时发生 ( 在 KeyDown 事件之前发生 ) 在调整控件大小时发生 第 6 章 Windows 高级界面设计 97

4 98 Visual Basic.NET 程序设计案例教程 知识点 2 Form 类 Form 类表示组成应用程序的用户界面的窗口或对话框 Form 是应用程序中所显示的任何窗口的表示形式 Form 类可用于创建标准窗口 工具窗口 无边框窗口和浮动窗口, 还可用于创建模式窗口, 如对话框 一种特殊类型的窗体, 即多文档界面 (MDI) 窗体可包含其他称为 MDI 子窗体的窗体 通过将 IsMdiContainer 属性设置为 true 来创建 MDI 窗体, 将 MdiParent 属性设置为将包含 MDI 子窗体的 MDI 父窗体来创建 MDI 子窗体 使用 Form 类中可用的属性, 可以确定所创建窗口或对话框的外观 大小 颜色和窗口管理功能 Text 属性允许在标题栏中指定窗口的标题 Size 和 DesktopLocation 属性允许定义窗口在显示时的大小和位置 可以使用 ForeColor 颜色属性更改窗体上放置的所有控件的默认前景色 FormBorderStyle MinimizeBox 和 MaximizeBox 属性允许控制运行时窗体是否可以最小化 最大化或调整窗体大小 除了属性之外, 还可以使用此类的方法来操作窗体 例如, 可以使用 ShowDialog 方法将窗体显示为模式对话框, 可以使用 SetDesktopLocation 方法在桌面上定位窗体 1.Form.Opacity 属性获取或设置窗体的不透明度级别 语法如下 : Visual Basic( 声明 ) Visual Basic( 用法 ) Public Property Opacity As Double Dim instance As Form Dim value As Double value = instance.opacity instance.opacity = value 该属性可以指定窗体及其控件的透明度级别 将此属性设置为小于 100%(1.00) 的值时, 会使整个窗体 ( 包括边框 ) 更透明 将此属性设置为值 0%(0.00) 时, 会使窗体完全不可见 可以使用此属性提供不同级别的透明度, 或者提供如窗体逐渐进入或退出视野这样的效果 例如, 可以通过将 Opacity 属性设置为值 0%(0.00), 并逐渐增加该值直到它达到 100%(1.00), 使一个窗体逐渐进入视野 2.Form.WindowState 属性获取或设置窗体的窗口状态 属性值 :FormWindowState, 表示窗体的窗口状态 默认为 FormWindowState.Normal FormWindowState 枚举 : 指定窗体窗口如何显示 此枚举由 Form 类使用, 它表示窗体的不同状态 默认状态为 Normal Maximized Minimized Normal 成员名称 最大化的窗口 最小化的窗口 默认大小的窗口 说明 3.Form.TopMost 属性获取或设置一个值, 指示该窗体是否应显示为最顶层窗体 最顶层窗体是重叠所有其他窗体 ( 非最顶层窗体 ) 的窗体, 即使该窗体不是活动窗体或前台窗体 最顶层窗体始终显示在桌面上

5 Z 顺序窗口的最高点 可以使用此属性创建在应用程序中始终显示的窗体, 如 查找和替换 工具窗口 属性值 : 如果将窗体显示为最顶层窗体, 则为 true, 否则为 false 默认为 false 4.Form.StartPosition 属性获取或设置运行时窗体的起始位置 属性值 :FormStartPosition, 表示窗体的起始位置 FormStartPosition 枚举 : 指定窗体的初始位置 成员名称 CenterParent CenterScreen Manual WindowsDefaultBounds WindowsDefaultLocation 说明窗体在其父窗体中居中窗体在当前显示窗口中居中, 其尺寸在窗体大小中指定窗体的位置由 Location 属性确定窗体定位在 Windows 默认位置, 其边界也由 Windows 默认决定窗体定位在 Windows 默认位置, 其尺寸在窗体大小中指定 5.Form.Size 属性获取或设置窗体的大小 该属性允许同时设置窗体的高度和宽度 ( 以像素为单位 ), 而不是分别设置 Height 和 Width 属性 属性值 :Size, 表示窗体的大小 6. 实例创建 Form 实例, 并调用 ShowDialog 方法以将该窗体显示为对话框 该示例设置 FormBorderStyle AcceptButton CancelButton MinimizeBox MaximizeBox 和 StartPosition 属性, 将窗体的外观和功能更改为对话框形式 该示例还使用窗体的 Controls 集合的 Add 方法添加 2 个 Button 控件 该示例使用 HelpButton 属性在对话框的标题栏中显示 帮助 按钮 Public Sub CreateMyForm() Dim form1 As New Form() Dim button1 As New Button() Dim button2 As New Button() button1.text = " 确定 " button1.location = New Point(10, 10) button2.text = " 取消 " button2.location = _ New Point(button1.Left, button1.height + button1.top + 10) form1.text = " 自定义对话框 " form1.helpbutton = True form1.formborderstyle = FormBorderStyle.FixedDialog form1.maximizebox = False form1.minimizebox = False form1.acceptbutton = button1 form1.cancelbutton = button2 form1.startposition = FormStartPosition.CenterScreen form1.controls.add(button1) form1.controls.add(button2) form1.showdialog() 第 6 章 Windows 高级界面设计 99

6 100 Visual Basic.NET 程序设计案例教程 知识点 3 TrackBar 控件 Windows 窗体 TrackBar 控件用于在大量信息中进行浏览, 或用于以可视的形式调整数字设置 TrackBar 控件有两部分 : 滚动块 ( 又称为滑块 ) 和刻度线 滚动块是可以调整的部分, 其位置与 Value 属性相对应 刻度线是按规则间隔分隔的可视化指示符 跟踪条按指定的增量移动并且可以水平或垂直排列 使用跟踪条的一个示例是设置光标闪烁频率或鼠标速度 使用该控件, 用户可以通过直观地调节数字设置来浏览信息 TrackBar 控件的关键属性为 :Value TickFrequency Minimum 以及 Maximum TickFrequency 为刻度间隔,Minimum 和 Maximum 为跟踪条上能表示的最大值和最小值, 如表 6-4 所示 表 6-4 TrackBar 控件关键属性 名称 Value TickFrequency Minimum Maximum SmallChange LargeChange 说明 获取或设置表示跟踪条上滚动框的当前位置的数值 属性值 : 处于 Minimum 和 Maximum 范围内的数值 默认值为 0 获取或设置一个值, 该值指定控件上绘制的刻度之间的增量 属性值 : 表示刻度之间的增量的数值 默认值为 1 获取或设置此 TrackBar 使用的范围的下限 属性值 :TrackBar 的最小值 默认值为 0 获取或设置此 TrackBar 使用的范围的上限 属性值 :TrackBar 的最大值 默认值为 10 获取或设置当滚动框短距离移动时对 Value 属性进行增减的值 属性值 : 一个数值 默认值为 1 获取或设置一个值, 当滚动框长距离移动时向 Value 属性加上该值或从中减去该值 属性值 : 一个数值 默认值为 5 其他两个重要的属性是 SmallChange 和 LargeChange SmallChange 属性值是滚动块响应按下向左键或向右键时移动的位置数,LargeChange 属性值是滚动块响应按下 PageUp 或 PageDown 键, 或者响应鼠标在跟踪条上的滚动块任一边单击时所移动的位置数 实例 : 下面的代码示例显示了一个包含 TrackBar 控件和 TextBox 控件的窗体 该示例演示如何设置 Maximum TickFrequency LargeChange 和 SmallChange 属性以及如何处理 Scroll 事件 Scroll 事件发生时,TextBox 内容被更新为 Value 属性值 Imports System Imports System.Drawing Imports System.Windows.Forms Public Class Form1 Inherits System.Windows.Forms.Form Private WithEvents trackbar1 As System.Windows.Forms.TrackBar Private textbox1 As System.Windows.Forms.TextBox <System.STAThread()> _ Public Shared Sub Main() System.Windows.Forms.Application.Run(New Form1)

7 Public Sub New() Me.textBox1 = New System.Windows.Forms.TextBox Me.trackBar1 = New System.Windows.Forms.TrackBar Me.textBox1.Location = New System.Drawing.Point(240, 16) Me.textBox1.Size = New System.Drawing.Size(48, 20) Me.ClientSize = New System.Drawing.Size(296, 62) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.textBox1, Me.trackBar1}) Me.Text = "TrackBar 实例 " Me.trackBar1.Location = New System.Drawing.Point(8, 8) Me.trackBar1.Size = New System.Drawing.Size(224, 45) trackbar1.maximum = 30 trackbar1.tickfrequency = 5 trackbar1.largechange = 3 trackbar1.smallchange = 2 Private Sub trackbar1_scroll(byval sender As Object, _ ByVal e As System.EventArgs) Handles trackbar1.scroll ' 在文本框中显示 TrackBar 的值 textbox1.text = trackbar1.value 知识点 4 Timer 控件 Windows 窗体 Timer 是定期引发事件的控件, 该控件是为 Windows 窗体环境设计的 Timer 控件具有一个 Interval 属性, 该属性指定一个计时器事件与下一个计时器事件之间间隔的毫秒数 除非该控件被禁用, 否则计时器会以大致相等的时间间隔继续接收 Tick 事件 当编写 Timer 控件时, 需要考虑 Interval 属性的几点限制 : 如果应用程序或另一个应用程序对系统需求很大 ( 如长循环 大量的计算或驱动程序 网络或端口访问 ), 那么应用程序可能无法以 Interval 属性指定的频率来获取计时器事件 间隔可以在 1~64767 之间 ( 包括 1 和 64767), 这意味着即使最长的间隔 ( 大约 64.8 秒 ) 也不会超过一分钟很多 不能保证间隔所精确经过的时间 若要确保精确, 计时器应根据需要检查系统时钟, 而不是尝试在内部跟踪所积累的时间 系统每秒生成 18 个时钟刻度, 因此即使 Interval 属性以毫秒为单位, 间隔的实际精度也不会超过 1/18 秒 使用计时器组件以设置的间隔运行过程的步骤如下 : (1) 在窗体中添加 Timer (2) 为计时器设置 Interval 属性 ( 以毫秒为单位 ) 该属性决定在再次运行该过程之前所经过的时间 ( 注意 : 计时器事件发生越频繁, 用于响应该事件的处理器时间就越长 这会降低整体性能 请勿将间隔设置得比所需值小 ) (3) 在 Tick 事件处理程序内编写合适的代码 在该事件中编写的代码将以 Interval 属性中所指定的间隔运行 (4) 将 Enabled 属性设置为 true, 以启动计时器 Tick 事件将开始发生, 从而以设置的间隔运行过程 (5) 需要的时候, 可将 Enabled 属性设置为 false, 以使过程停止再次运行 ( 注意 : 将间隔 第 6 章 Windows 高级界面设计 101

8 102 Visual Basic.NET 程序设计案例教程 设置为 0, 并不会导致计时器停止 ) 任务 1 解析 1. 控件的属性 ( 如表 6-5 所示 ) 表 6-5 控件属性说明 控件 Name 属性 Text 属性其他属性 Form Form1 透明窗体 Timer Timer1 Invertal=20 Label Label1 窗体不透明度 100% TrackBar TrackBar1 2. 源代码 Public Class Form1 Inherits System.Windows.Forms.Form Dim temp As Integer Dim flag As Boolean Private Sub TrackBar1_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll Me.Opacity = TrackBar1.Value / 100 Label1.Text = " 窗体不透明度 :" & CStr(Me.Opacity * 100) & "%" Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick If flag = False Then temp = temp + 1 Me.Opacity = temp / 100 If Me.Opacity >= 1 Then Timer1.Enabled = False flag = True Else temp = temp - 1 Me.Opacity = temp / 100 If Me.Opacity <= 0 Then Timer1.Enabled = False flag = False Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = True Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing Timer1.Enabled = True If MsgBox(" 真的关闭窗体吗?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then e.cancel = False Else Timer1.Enabled = False Me.Opacity = 1 temp = 100 flag = True

9 e.cancel = True 6.2 对话框应用 任务 2 通用对话框 1. 运行界面运行界面如图 6-2 所示 图 6-2 运行界面 2. 功能 (1) 通过 OpenFileDialog 组件打开文本文件 (2) 通过 ColorDialog 组件设置文本颜色 (3) 通过 FontDialog 组件设置文本字体 (4) 通过 SaveFileDialog 组件另存文本 知识点 1 OpenFileDialog 控件 Windows 窗体 OpenFileDialog 控件是一个预先配置的对话框 它与 Windows 操作系统所公开的 打开文件 对话框相同, 该控件从 CommonDialog 类继承 在基于 Windows 的应用程序中可将该组件用作简单的文件选择解决方案, 而不用配置自己的对话框 利用标准的 Windows 对话框, 可以创建其基本功能可立即为用户所熟悉的应用程序 但是应注意, 使用 OpenFileDialog 控件时, 必须编写自己的文件打开逻辑 可使用 ShowDialog 方法在运行时显示该对话框 使用 Multiselect 属性可使用户选择多个要打开的文件 另外, 可使用 ShowReadOnly 属性确定在对话框中是否出现只读复选框 ; ReadOnlyChecked 属性指示是否选中只读复选框 ;Filter 属性设置当前文件名筛选字符串, 该字符串确定出现在对话框的 文件类型 框中的选择 将 OpenFileDialog 控件添加到窗体后, 它出现在 Windows 窗体设计器底部的栏中 OpenFileDialog 控件有如下主要属性 : (1)FileName 属性 : 获取或设置一个包含在 文件 对话框中选定的文件名的字符串 文件名既包含文件路径也包含扩展名 如果未选定文件, 该属性将返回空字符串 ("") (2)CheckFileExists 属性 : 获取或设置一个值, 该值指示如果用户指定不存在的文件名, 第 6 章 Windows 高级界面设计 103

10 104 Visual Basic.NET 程序设计案例教程 对话框是否显示警告 (3)CheckPathExists 属性 : 获取或设置一个值, 该值指示如果用户指定不存在的路径, 对话框是否显示警告 (4)DefaultExt 属性 : 获取或设置默认文件扩展名 (5)Filter 属性 : 获取或设置当前文件名筛选器字符串, 该字符串决定对话框的 另存为文件类型 或 文件类型 框中出现的选择内容 (6)FilterIndex 属性 : 获取或设置 文件 对话框中当前选定筛选器的索引 (7)InitialDirectory 属性 : 获取或设置 文件 对话框显示的初始目录 (8)Title 属性 : 获取或设置 文件 对话框标题 实例 : 使用 OpenFileDialog 控件以文件方式打开文件 使用 ShowDialog 方法显示对话框, 并使用 OpenFile 方法打开文件 在下面的实例中, 将实例化一个具有 cursor 筛选器的 OpenFileDialog 控件, 使用户只能选择具有.cur 文件扩展名的文件 如果选择了一个.cur 文件, 该窗体的光标将设置为选定的光标 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' 创建选择光标文件的 OpenFileDialog Dim openfiledialog1 As New OpenFileDialog() openfiledialog1.filter = " 光标文件 *.cur" openfiledialog1.title = " 选择光标文件 " ' 显示选择光标文件的 OpenFileDialog If openfiledialog1.showdialog() = DialogResult.OK Then ' 将窗体的光标设置为选定的光标 Me.Cursor = New Cursor(openFileDialog1.OpenFile()) 知识点 2 SaveFileDialog 控件 Windows 窗体 SaveFileDialog 控件是一个预先配置的对话框 它与 Windows 使用的标准 保存文件 对话框相同, 该组件继承自 CommonDialog 类 使用该控件作为一个简单的解决方案, 使用户能够保存文件, 而不用配置您自己的对话框 利用标准的 Windows 对话框, 创建基本功能可立即为用户所熟悉的应用程序 但应注意, 使用 SaveFileDialog 控件时, 必须编写自己的文件保存逻辑 可使用 ShowDialog 方法在运行时显示该对话框 使用 OpenFile 方法可以读写方式打开文件 将 SaveFileDialog 控件添加到窗体后, 它出现在 Windows 窗体设计器底部的栏中 知识点 3 ColorDialog 控件 Windows 窗体 ColorDialog 控件是一个预先配置的对话框, 它允许用户从调色板选择颜色以及将自定义颜色添加到该调色板 此对话框与在其他基于 Windows 的应用程序中看到的用于选择颜色的对话框相同 可在基于 Windows 的应用程序中使用它作为简单的解决方案, 而不用配置自己的对话框 此对话框中选择的颜色在 Color 属性中返回 如果 AllowFullOpen 属性设置为 false, 则将禁用 定义自定义颜色 按钮, 并且用户只能使用调色板中的预定义颜色 如果 SolidColorOnly 属性设置为 true, 则用户无法选择抖色 若要显示此对话框, 必须调用它的 ShowDialog 方法 ColorDialog 控件有如下主要属性 :

11 (1)AllowFullOpen 属性 : 获取或设置一个值, 该值指示用户是否可以使用该对话框定义自定义颜色 (2)AnyColor 属性 : 获取或设置一个值, 该值指示对话框是否显示基本颜色集中可用的所有颜色 (3)Color 属性 : 获取或设置用户选定的颜色 (4)CustomColors 属性 : 获取或设置对话框中显示的自定义颜色集 (5)FullOpen 属性 : 获取或设置一个值, 该值指示用于创建自定义颜色的控件在对话框打开时是否可见 (6)SolidColorOnly 属性 : 获取或设置一个值, 该值指示对话框是否限制用户只选择纯色 实例 : 使用 ColorDialog 控件选择颜色 (1) 使用 ShowDialog 方法显示对话框 (2) 使用 DialogResult 属性确定如何关闭对话框 (3) 使用 ColorDialog 控件的 Color 属性设置选定的颜色 在下面的实例中,Button 控件的 Click 事件处理程序打开一个 ColorDialog 控件 当用户选定颜色并单击 确定 按钮后,Button 控件的背景色将设置为选定的颜色 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click If ColorDialog1.ShowDialog() = DialogResult.OK Then Button1.BackColor = ColorDialog1.Color 知识点 4 FontDialog 控件 Windows 窗体 FontDialog 控件是一个预先配置的对话框, 该对话框是标准的 Windows 字体 对话框, 用于公开系统上当前安装的字体 可在基于 Windows 的应用程序中将其用作简单的字体选择解决方案, 而不是配置您自己的对话框 默认情况下, 该对话框显示字体 字体样式和字体大小的列表框 ; 删除线和下划线等效果的复选框 ; 脚本的下拉列表以及字体外观的示例 ( 脚本是指给定字体可用的不同字符脚本, 如希伯来语或日语 ) 若要显示 字体 对话框, 请调用 ShowDialog 方法 用户可以使用 FontDialog 控件选择字体, 并可以更改字体显示方式, 例如粗细和大小 该对话框中选定的字体在 Font 属性中返回 FontDialog 控件有如下主要属性 : (1)AllowScriptChange 属性 : 获取或设置一个值, 该值指示用户能否更改 脚本 组合框中指定的字符集, 以显示除了当前所显示字符集以外的字符集 (2)Color 属性 : 获取或设置选定字体的颜色 (3)Font 属性 : 获取或设置选定的字体 (4)MaxSize 属性 : 获取或设置用户可选择的最大磅值 (5)MinSize 属性 : 获取或设置用户可选择的最小磅值 (6)ShowColor 属性 : 获取或设置一个值, 该值指示对话框是否显示颜色选择 (7)ShowEffects 属性 : 获取或设置一个值, 该值指示对话框是否包含允许用户指定删除线 下划线和文本颜色选项的控件 实例 : 使用 FontDialog 控件选择字体属性. (1) 使用 ShowDialog 方法显示对话框 第 6 章 Windows 高级界面设计 105

12 106 Visual Basic.NET 程序设计案例教程 (2) 使用 DialogResult 属性确定如何关闭对话框 (3) 使用 Font 属性设置所需的字体 在下面的实例中,Button 控件的 Click 事件处理程序打开一个 FontDialog 控件 当用户选定字体并单击 确定 按钮时, 窗体上的 TextBox 控件的 Font 属性被设置为选定的字体 本实例假定窗体上有 1 个 Button 控件 1 个 TextBox 控件和 1 个 FontDialog 控件 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click If FontDialog1.ShowDialog() = DialogResult.OK Then TextBox1.Font = FontDialog1.Font 任务 2 解析 1. 控件的属性 ( 如表 6-6 所示 ) 表 6-6 控件属性说明 控件 Name 属性 Text 属性其他属性 Form Form1 通用对话框 OpenFileDialog OpenFileDialog1 TextBox TxtNote Multiline=True Button BtnOpen BtnSav BtnClr BtnFnt BtnExt 2. 源代码 Imports System.Drawing.Printing Public Class Form1 Inherits System.Windows.Forms.Form 打开 保存 颜色 字体 结束 Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOpen.Click Dim opdg As New OpenFileDialog() opdg.filter = " 文本文件 (*.txt) *.txt" Dim sr As StreamReader TxtNote.Text = "" If opdg.showdialog = DialogResult.OK Then Try sr = File.OpenText(opdg.FileName) Dim x As String While sr.peek <> -1 x = sr.readline() TxtNote.Text += x & vbcrlf End While sr.close() Catch ex As FileNotFoundException MsgBox(opdg.FileName & " 没发现!") End Try

13 Private Sub BtnSav_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSav.Click Dim svdg As New SaveFileDialog() svdg.filter = " 文本文件 (*.txt) *.txt" Dim sr As StreamWriter If svdg.showdialog = DialogResult.OK Then Try sr = File.CreateText(svdg.FileName) Dim ch As Char For Each ch In TxtNote.Text sr.write(ch) Next sr.close() Catch ex As Exception MsgBox(ex.Message) End Try Private Sub BtnClr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnClr.Click Dim clrdg As New ColorDialog() If clrdg.showdialog = DialogResult.OK Then TxtNote.ForeColor = clrdg.color Private Sub BtnFnt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFnt.Click Dim fntdg As New FontDialog() If fntdg.showdialog = DialogResult.OK Then TxtNote.Font = fntdg.font Private Sub BtnExt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExt.Click Close() Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TxtNote.Text = " 在此处输入文字..." 6.3 菜单应用 任务 3 写字板 1. 运行界面运行界面如图 6-3 所示 2. 功能 (1) 实现新建 打开 保存 另存为功能 (2) 实现剪切 复制 粘贴 全选操作功能 (3) 实现快捷菜单功能 (4) 设置背景颜色和字体 第 6 章 Windows 高级界面设计 107

14 108 Visual Basic.NET 程序设计案例教程 图 6-3 运行界面 知识点 1 MainMenu 控件 Windows 窗体 MainMenu 控件在运行时显示一个菜单 主菜单的所有子菜单和单个项均为 MenuItem 对象 通过将 DefaultItem 属性设置为 true, 可以将某菜单项指定为默认项 单击菜单时, 默认项以粗体文本显示 菜单项的 Checked 属性为 true 或 false, 它指示是否选定了该菜单项 菜单项的 RadioCheck 属性会自定义选定项的外观 : 如果 RadioCheck 设置为 true, 则该项旁边出现一个单选按钮 ; 如果 RadioCheck 设置为 false, 则该项旁边出现一个选中标记 MenuItem 类 : 表示在 MainMenu 或 ContextMenu 内显示的单个项 为了显示 MenuItem, 必须将其添加到 MainMenu 或 ContextMenu 若要创建子菜单, 可以将 MenuItem 对象添加到父 MenuItem 的 MenuItems 属性 MenuItem 类提供使您得以配置菜单项的外观和功能的属性 若要显示菜单项旁边的选中标记, 可使用 Checked 属性, 使用该功能来标识在互斥的菜单项列表中选择的菜单项 例如, 如果有一组用于在 TextBox 控件中设置文本颜色的菜单项, 则可以使用 Checked 属性来标识当前选定的颜色 Shortcut 属性可用于定义键盘组合 ( 可按下该键盘组合来选择菜单项 ) 对于在多文档界面 (MDI) 应用程序中显示的 MenuItem 对象, 可使用 MergeMenu 方法将 MDI 父级菜单与其子窗体菜单合并以创建合并的菜单结构 因为无法同时在多个位置重用 MenuItem( 如在 MainMenu 和 ContextMenu 中 ), 所以可以使用 CloneMenu 方法创建可用于其他位置的 MenuItem 的副本 Popup 事件使您得以在显示菜单前执行任务 例如, 可以基于代码状态为该事件创建一个事件处理程序以显示或隐藏菜单项 通过 Select 事件可以执行任务, 如当用户将鼠标指针放在菜单项上时, 为应用程序的菜单项提供详细的帮助 1. 主要属性 ( 如表 6-7 所示 )

15 名称 Checked DefaultItem Enabled Index IsParent MdiList MdiListItem 表 6-7 MainMenu 组件主要属性说明 说明 获取或设置一个值, 通过该值指示选中标记是否出现在菜单项文本的旁边 获取或设置一个值, 通过该值指示菜单项是否为默认菜单项 获取或设置一个值, 通过该值指示菜单项是否启用 获取或设置一个值, 通过该值指示菜单项在其父菜单中的位置 已重写 获取一个值, 通过该值指示菜单项是否包含子菜单项 获取或设置一个值, 通过该值指示是否使用在关联窗体内显示的多文档界面 (MDI) 子窗口列表来填充菜单项 获取一个值, 通过该值指示用于显示多文档界面 (MDI) 子窗体列表的 MenuItem( 从 Menu 继承 MenuItems 获取一个值, 通过该值指示与菜单关联的 MenuItem 对象的集合 ( 从 Menu 继承 ) Name 获取或设置 Menu 的名称 ( 从 Menu 继承 ) RadioCheck Shortcut ShowShortcut Text Visible 获取或设置一个值, 通过该值指示 MenuItem( 如果已选中 ) 是否显示单选按钮而不是选中标记 获取或设置一个值, 通过该值指示与菜单项关联的快捷键 获取或设置一个值, 通过该值指示与菜单项关联的快捷键是否在菜单项标题的旁边显示 获取或设置一个值, 通过该值指示菜单项标题 获取或设置一个值, 通过该值指示菜单项是否可见 2. 主要事件 ( 如表 6-8 所示 ) 表 6-8 MainMenu 组件主要事件说明 名称 Click Popup Select 说明 当单击菜单项或使用为该菜单项定义的快捷键或访问键选择菜单项时发生 如果用户使用键盘并按 Enter 键选择菜单项, 此事件也会发生 在显示菜单项的菜单项列表之前发生 该事件仅在菜单项有要显示的子菜单项时发生 在显示各菜单项之前, 可基于应用程序的状态使用该事件处理程序添加 移除 启用 禁用 选中或取消选中菜单项 当用户将指针放在菜单项上时发生 当用户将鼠标指针放在菜单项上时, 通常会引发此事件 当用户使用键盘上的箭头键滚动到菜单项上来突出显示该菜单项时, 也可引发该事件 可使用该事件在应用程序的状态栏中显示有关该菜单项的详细帮助字符串 实例 1:Click 事件的使用 下面的实例演示了如何使用 Click 事件在单击 MenuItem 时执行任务 此实例将创建一个名为 mainmenu1 的 MainMenu, 并添加两个 MenuItem 对象 :topmenuitem(file) 和 menuitem1 (Open), 然后它将 Click 事件连接到 menuitem1_click 事件处理程序 当用户单击 Open 菜单项时, 就会初始化并显示一个 OpenFileDialog 此实例要求已创建了一个名为 Form1 的 Form Public Sub CreateMyMenu() ' 创建主菜单对象 Dim mainmenu1 As New MainMenu() ' 创建菜单项对象 Dim topmenuitem As New MenuItem() 第 6 章 Windows 高级界面设计 109

16 110 Visual Basic.NET 程序设计案例教程 Dim menuitem1 As New MenuItem() ' 设置菜单项显示文字 topmenuitem.text = "&File" menuitem1.text = "&Open" ' 把菜单项加到主菜单中 topmenuitem.menuitems.add(menuitem1) mainmenu1.menuitems.add(topmenuitem) ' 把 menuitem1.click 和 Me.menuItem1_Click 关联 AddHandler menuitem1.click, AddressOf Me.menuItem1_Click ' 把 mainmenu1 和主窗体关联 Me.Menu = mainmenu1 Private Sub menuitem1_click(byval sender As Object, ByVal e As System.EventArgs) ' 创建并显示 OpenFileDialog Dim fd As New OpenFileDialog() fd.defaultext = "*.*" fd.showdialog() 实例 2:Popup 事件的使用 下面的实例演示如何使用 Popup 事件, 来确定是否在那些为剪切 复制和删除操作提供支持的 MenuItem 对象所在的菜单显示之前就启用了这些对象 此实例确定在启用 MenuItem 对象之前,textBox1( 窗体上的 TextBox 控件 ) 是否已被启用 是否具有输入焦点以及是否选定了文本 此实例要求已创建 3 个名称分别为 menucut menucopy 和 menudelete 的 MenuItem 对象 Private Sub PopupMyMenu(ByVal sender As Object, ByVal e As System.EventArgs) Handles menuedit.popup If textbox1.enabled = False OrElse textbox1.focused = False OrElse textbox1.selectedtext.length = 0 Then menucut.enabled = False menucopy.enabled = False menudelete.enabled = False Else menucut.enabled = True menucopy.enabled = True menudelete.enabled = True 实例 3:MenuItem 类的 Select 事件的使用 下面的实例演示了如何使用 MenuItem 类的 Select 事件向 StatusBar 控件的 StatusBarPanel 分配帮助文本 此实例要求名为 menuopen menusave 和 menuexit 的 MenuItem 对象已添加到窗体的 MainMenu 控件中 此实例还要求已将名为 statusbar1 的 StatusBar 控件添加到窗体中 StatusBar 控件应包含 StatusBarPanel Private Sub MenuSelected(ByVal sender As Object, ByVal e As System.EventArgs) Handles menuopen.select, menuexit.select, menusave.select If sender Is menuopen Then StatusBar1.Panels(0).Text = " 打开文件 " Else If sender Is menusave Then StatusBar1.Panels(0).Text = " 保存文件 " Else If sender Is menuexit Then StatusBar1.Panels(0).Text = " 退出应用程序 " Else StatusBar1.Panels(0).Text = " 就绪 "

17 知识点 2 MenuStrip 控件 MenuStrip 控件支持多文档界面 (MDI) 和菜单合并 工具提示和溢出 可以通过添加访问键 快捷键 选中标记 图像和分隔条, 来增强菜单的可用性和可读性 MenuStrip 控件取代了 MainMenu 控件并向其中添加了功能 ; 但也可以选择保留 MainMenu 控件以备向后兼容和将来使用 MenuStrip 类在.NET Framework 2.0 版中是新增的 MenuStrip 控件表示窗体菜单结构的容器 可以将 ToolStripMenuItem 对象添加到表示菜单结构中各命令的 MenuStrip 中 每个 ToolStripMenuItem 可以成为应用程序的命令或其他子菜单项的父菜单 MenuStrip 是 ToolStripMenuItem ToolStripComboBox ToolStripSeparator 和 ToolStripTextBox 对象的容器 使用 MenuStrip 控件可以 : (1) 创建支持高级用户界面和布局功能的易自定义的常用菜单, 例如文本和图像排序和对齐 拖放操作 MDI 溢出和访问命令的其他模式 (2) 支持操作系统的典型外观和行为 (3) 对所有容器和包含的项进行事件的一致性处理, 处理方式与其他控件的事件相同 主要属性如表 6-9 所示 表 6-9 MenuStrip 控件主要属性说明 名称 MdiWindowListItem System.Windows.Forms.ToolStripItem.Merge Action System.Windows.Forms.ToolStripItem.Merge Index System.Windows.Forms.Form.IsMdiContainer ShowItemToolTips CanOverflow ShortcutKeys ShowShortcutKeys 说明 获取或设置用于显示 MDI 子窗体列表的 ToolStripMenuItem 获取或设置 MDI 应用程序中子菜单与父菜单合并的方式 获取或设置 MDI 应用程序的菜单中合并项的位置 获取或设置一个值, 该值指示窗体是否为 MDI 子窗体的容器 获取或设置一个值, 该值指示是否为 MenuStrip 显示工具提示 获取或设置一个值, 该值指示 MenuStrip 是否支持溢出功能 获取或设置与 ToolStripMenuItem 关联的快捷键 获取或设置一个值, 该值指示与 ToolStripMenuItem 关联的快捷键是否显示在 ToolStripMenuItem 旁边 知识点 3 ContextMenuStrip 控件 ContextMenuStrip 控件提供了与某个控件关联的快捷菜单 快捷菜单 ( 也称为上下文菜单 ) 在用户右击时会出现在鼠标位置 快捷菜单在鼠标指针位置提供了工作区或控件的选项 ContextMenuStrip 控件旨在无缝地与新的 ToolStrip 和相关控件结合使用, 但是也可以很容易地将 ContextMenuStrip 与其他控件关联 ContextMenuStrip 类在.NET Framework 2.0 版中是新增的 ContextMenuStrip 类表示快捷菜单, 这些快捷菜单在用户在窗体中的控件或特定区域上单击鼠标右键时显示 快捷菜单通常用于组合来自窗体的一个 MenuStrip 的不同菜单项, 便于用户在给定应用程序上下文中使用 例如, 可以使用分配给 TextBox 控件的快捷菜单提供菜单项, 以便更改文本字体, 在控件中查找文本或实现复制和粘贴文本的剪贴版功能 还可以在快捷菜单中显示不位于 MenuStrip 中的新的 ToolStripMenuItem 对象, 从而提供与特定情况有关且不适合在 MenuStrip 中显示的命令 当用户在控件或窗体本身上右击时, 通常会显示快捷菜单 许多可视控件 ( 以及 Form 本 第 6 章 Windows 高级界面设计 111

18 112 Visual Basic.NET 程序设计案例教程 身 ) 都有一个 Control.ContextMenuStrip 属性, 该属性将 ContextMenuStrip 类绑定到显示快捷菜单的控件 多个控件可使用一个 ContextMenuStrip 将 ToolStripDropDownMenu.ShowCheckMargin 属性设置为 true 可向 ToolStripMenuItem 的左侧添加用以容纳选中标记的空间, 选中标记显示是否启用或选择了该菜单项 ToolStripDropDownMenu.ShowImageMargin 属性默认被设置为 true 使用 ToolStripMenuItem 左侧的此空间可以为菜单项显示一个图像 ContextMenuStrip 是 ToolStripMenuItem ToolStripComboBox ToolStripSeparator 和 ToolStrip TextBox 对象的容器 知识点 4 ToolStripMenuItem 类 表示 MenuStrip 或 ContextMenuStrip 上显示的可选选项 为了显示 ToolStripMenuItem, 必须将其添加到 MenuStrip 或 ContextMenuStrip ToolStripMenuItem 类提供使您得以配置菜单项的外观和功能的属性 若要显示菜单项旁边的选中标记, 使用 Checked 属性 使用此功能可以标识在互斥的菜单项列表中选定的菜单项 例如, 如果有一组用于在 TextBox 控件中设置文本颜色的菜单项, 则可以使用 Checked 属性来标识当前选定的颜色 使用 ShortcutKeys 属性可以定义组合键 ( 可以按该组合键来选择菜单项 ) 主要属性如表 6-10 所示 表 6-10 ToolStripMenuItem 类主要属性说明 名称 Checked CheckOnClick CheckState ShortcutKeyDisplayString ShortcutKeys ShowShortcutKeys 说明 获取或设置一个值, 该值指示是否选中 ToolStripMenuItem 获取或设置一个值, 该值指示 ToolStripMenuItem 是否应在被单击时自动显示为选中或未选中 获取或设置一个值, 该值指示 ToolStripMenuItem 处于选中 未选中还是不确定状态 获取或设置快捷键文本 获取或设置与 ToolStripMenuItem 关联的快捷键 获取或设置一个值, 该值指示与 ToolStripMenuItem 关联的快捷键是否显示在 ToolStripMenuItem 的旁边 任务 3 解析 1. 控件的属性 ( 如表 6-11 所示 ) 表 6-11 控件属性说明 控件 Name 属性 Text 属性其他属性 Form FormNote 写字板 MenuStrip ContextMenuStrip MenuStripNote ContextMenuStripNote TextBox TextBoxNote ContextMenuStrip=Conte xtmenustripnote Multiline= true

19 续表 控件 Name 属性 Text 属性其他属性 ToolStripMenuItem (MenuStrip) ToolStripMenuItem (ContextMenuStrip) 2. 源代码 ToolStripMenuItemFile ToolStripMenuItemFileNew ToolStripMenuItemFileOpen ToolStripMenuItemFileSave ToolStripMenuItemFileSaveAs ToolStripMenuItemFileExit ToolStripMenuItemEdit ToolStripMenuItemEditUndo ToolStripMenuItemEditCut ToolStripMenuItemEditCopy ToolStripMenuItemEditPaste ToolStripMenuItemEditSelectAll ToolStripMenuItemSetup ToolStripMenuItemSetupColor ToolStripMenuItemSetupFont ToolStripMenuItemHelp ToolStripMenuItemHelpAbout ToolStripMenuItemCut ToolStripMenuItemCopy ToolStripMenuItemPaste ToolStripMenuItemSelectAll 文件 (&F) 新建 (&N) 打开 (&O)... 保存 (&S) 另存为 (&A)... 退出 (&X) 编辑 (&E) 撤消 (&U) 剪切 (&T) 复制 (&C) 粘贴 (&P) 全选 (&A) 设置 (&S) 颜色 (&C)... 字体 (&F)... 帮助 (&H) 关于写字板 (&A)... 剪切 (&T) 复制 (&C) 粘贴 (&P) 全选 (&A) Public Class FormNote Private strfilename As String Private Sub FormNote_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.TextBoxNote.Width = Me.Width - 8 Me.TextBoxNote.Height = Me.Height - Me.MenuStripNote.Height - 32 Me.ToolStripMenuItemEditUndo.Enabled = False Me.ToolStripMenuItemEditCut.Enabled = False Me.ToolStripMenuItemEditCopy.Enabled = False Me.ToolStripMenuItemCut.Enabled = False Me.ToolStripMenuItemCopy.Enabled = False strfilename = " 新文件.txt" Me.Text = " 写字板 -" + strfilename Private Sub ToolStripMenuItemFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemFileExit.Click Me.Close() 第 6 章 Windows 高级界面设计 113

20 114 Visual Basic.NET 程序设计案例教程 Private Sub ToolStripMenuItemEditCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemEditCopy.Click, ToolStripMenuItemCopy.Click If Me.TextBoxNote.SelectionLength > 0 Then ' 将文本框中的当前选定内容复制到 剪贴板 Me.TextBoxNote.Copy() Private Sub ToolStripMenuItemEditCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemEditCut.Click, ToolStripMenuItemCut.Click If Me.TextBoxNote.SelectedText <> "" Then ' 将文本框中的当前选定内容移动到 剪贴板 Me.TextBoxNote.Cut() Private Sub ToolStripMenuItemEditPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemEditPaste.Click, ToolStripMenuItemPaste.Click If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) = True Then If Me.TextBoxNote.SelectionLength > 0 Then If MessageBox.Show(" 是否覆盖当前选择的内容?", " 提示 ", MessageBoxButtons.YesNo) = System.Windows.Forms.DialogResult.No Then ' 重新设置文本框中选定的文本起始点 Me.TextBoxNote.SelectionStart = Me.TextBoxNote.SelectionStart + Me.TextBoxNote.SelectionLength Me.TextBoxNote.SelectionLength = 0 ' 用剪贴板的内容替换文本框中的当前选定内容 Me.TextBoxNote.Paste() Private Sub ToolStripMenuItemEditSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemEditSelectAll.Click, ToolStripMenuItemSelectAll.Click If Me.TextBoxNote.SelectionLength = 0 Then ' 选定文本框中的所有文本 Me.TextBoxNote.SelectAll() ' 将文本框中的当前选定内容复制到 剪贴板 Me.TextBoxNote.Copy() Me.ToolStripMenuItemEditCut.Enabled = True Me.ToolStripMenuItemEditCopy.Enabled = True Me.ToolStripMenuItemCut.Enabled = True Me.ToolStripMenuItemCopy.Enabled = True Private Sub ToolStripMenuItemFileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemFileNew.Click If Me.TextBoxNote.Modified Then Dim messageboxresult As DialogResult messageboxresult = MessageBox.Show(" 当前文档已被修改, 是否保存?", " 保存 ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) If messageboxresult = Windows.Forms.DialogResult.Yes Then Me.ToolStripMenuItemFileSaveAs.PerformClick() ElseIf messageboxresult = Windows.Forms.DialogResult.Cancel Then Exit Sub

21 Me.TextBoxNote.Clear() strfilename = " 新文件.txt" Me.Text = " 写字板 -" + strfilename Private Sub ToolStripMenuItemFileOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemFileOpen.Click If Me.TextBoxNote.Modified Then Dim messageboxresult As DialogResult messageboxresult = MessageBox.Show(" 当前文档已被修改, 是否保存?", " 保存 ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) If messageboxresult = Windows.Forms.DialogResult.Yes Then Me.ToolStripMenuItemFileSaveAs.PerformClick() ElseIf messageboxresult = Windows.Forms.DialogResult.Cancel Then Exit Sub Dim opdg As New OpenFileDialog() opdg.filter = " 文本文件 (*.txt) *.txt" Dim sr As StreamReader If opdg.showdialog = System.Windows.Forms.DialogResult.OK Then Try Me.TextBoxNote.Text = "" strfilename = opdg.filename Me.Text = " 写字板 -" + strfilename sr = File.OpenText(opdg.FileName) Dim x As String While sr.peek <> -1 x = sr.readline() Me.TextBoxNote.Text += x & vbcrlf End While sr.close() Catch ex As FileNotFoundException MsgBox(opdg.FileName & " 没发现!") End Try Private Sub ToolStripMenuItemFileSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemFileSaveAs.Click Dim svdg As New SaveFileDialog() svdg.filter = " 文本文件 (*.txt) *.txt" svdg.filename = strfilename Dim sr As StreamWriter If svdg.showdialog = System.Windows.Forms.DialogResult.OK Then Try strfilename = svdg.filename Me.Text = " 写字板 -" + strfilename sr = File.CreateText(svdg.FileName) Dim ch As Char For Each ch In Me.TextBoxNote.Text sr.write(ch) Next sr.close() Catch ex As Exception 第 6 章 Windows 高级界面设计 115

22 116 Visual Basic.NET 程序设计案例教程 MsgBox(ex.Message) End Try Private Sub ToolStripMenuItemFileSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemFileSave.Click If strfilename = " 新文件.txt" Then Me.ToolStripMenuItemFileSaveAs.PerformClick() Else Dim sr As StreamWriter Try sr = File.CreateText(strFileName) Dim ch As Char For Each ch In Me.TextBoxNote.Text sr.write(ch) Next sr.close() Catch ex As Exception MsgBox(ex.Message) End Try Private Sub FormNote_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize Me.TextBoxNote.Width = Me.Width - 8 Me.TextBoxNote.Height = Me.Height - Me.MenuStripNote.Height - 32 Private Sub ToolStripMenuItemHelpAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemHelpAbout.Click Dim about As FormAbout about = New FormAbout() about.showdialog() Private Sub ToolStripMenuItemSetupColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemSetupColor.Click Dim clrdg As New ColorDialog() clrdg.color = Me.TextBoxNote.BackColor If clrdg.showdialog = System.Windows.Forms.DialogResult.OK Then Me.TextBoxNote.BackColor = clrdg.color Private Sub ToolStripMenuItemSetupFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemSetupFont.Click Dim fntdg As New FontDialog() fntdg.showcolor = True fntdg.color = Me.TextBoxNote.ForeColor fntdg.font = Me.TextBoxNote.Font If fntdg.showdialog = System.Windows.Forms.DialogResult.OK Then Me.TextBoxNote.Font = fntdg.font Me.TextBoxNote.ForeColor = fntdg.color Private Sub FormNote_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)

23 Handles MyBase.FormClosing Dim messageboxresult As DialogResult If Me.TextBoxNote.Modified Then messageboxresult = MessageBox.Show(" 当前文档已被修改, 是否保存?", " 保存 ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) Select Case messageboxresult Case Windows.Forms.DialogResult.Yes Me.ToolStripMenuItemFileSave.PerformClick() e.cancel = False Case Windows.Forms.DialogResult.No e.cancel = False Case Windows.Forms.DialogResult.Cancel e.cancel = True End Select Private Sub ToolStripMenuItemEditUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItemEditUndo.Click If Me.TextBoxNote.CanUndo = True Then ' 撤消文本框中的上一个编辑操作 Me.TextBoxNote.Undo() ' 从该文本框的撤消缓冲区中清除关于最近操作的信息 Me.TextBoxNote.ClearUndo() Private Sub TextBoxNote_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxNote.TextChanged Me.ToolStripMenuItemEditUndo.Enabled = True Private Sub TextBoxNote_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBoxNote.MouseUp If Me.TextBoxNote.SelectedText() <> "" Then Me.ToolStripMenuItemEditCut.Enabled = True Me.ToolStripMenuItemEditCopy.Enabled = True Me.ToolStripMenuItemCut.Enabled = True Me.ToolStripMenuItemCopy.Enabled = True Else Me.ToolStripMenuItemEditCut.Enabled = False Me.ToolStripMenuItemEditCopy.Enabled = False Me.ToolStripMenuItemCut.Enabled = False Me.ToolStripMenuItemCopy.Enabled = False 6.4 ListView 控件应用 任务 4 文件浏览器 1. 运行界面运行界面如图 6-4 所示 第 6 章 Windows 高级界面设计 117

24 118 Visual Basic.NET 程序设计案例教程 图 6-4 运行界面 2. 功能 (1) 根据选择的驱动器浏览当前驱动器内的目录 (2) 根据选择的目录浏览当前目录内的文件 知识点 1 ListView 控件 Windows 窗体 ListView 控件显示了带图标的项的列表 可使用列表视图创建类似于 Windows 资源管理器右窗格的用户界面 该控件具有 4 种视图模式 :LargeIcon SmallIcon List 和 Details 大图标视图模式在项文本旁显示大图标 ; 如果控件足够大, 则项显示在多列中 小图标视图模式除显示小图标外, 其他方面与大图标视图模式相同 列表视图模式显示小图标, 但总是显示在单列中 Details 视图模式在多列中显示项 ListView 控件的主要属性是 Items, 该属性包含该控件显示的项 SelectedItems 属性包含控件中当前选定项的集合 如果将 MultiSelect 属性设置为 true, 则用户可选择多项, 例如, 同时将若干项拖放到另一个控件中 如果将 CheckBoxes 属性设置为 true,listview 控件可以显示这些项旁的复选框 Activation 属性可以确定用户激活列表中的某项时必须执行的操作类型 : 选项有 Standard OneClick 和 TwoClick 执行 OneClick 激活时, 需要通过一次单击激活该项 执行 TwoClick 激活时, 要求用户通过双击激活该项 知识点 2 DirectoryInfo 类 公开用于创建 移动和枚举目录和子目录的实例方法 无法继承此类 1.DirectoryInfo 构造函数在指定的路径中初始化 DirectoryInfo 类的新实例 下面的实例使用此构造函数创建指定的目录及子目录, 并演示包含子目录的目录不能被删除 Imports System

25 Public Class Test Public Shared Sub Main() Dim di1 As DirectoryInfo = New DirectoryInfo("c:\MyDir") Dim di2 As DirectoryInfo = New DirectoryInfo("c:\MyDir\temp") Try di1.create() di2.create() Console.WriteLine("I am about to attempt to delete {0}.", di1.name) di1.delete() Console.WriteLine("The Delete operation was successful, which was unexpected.") Catch e As Exception Console.WriteLine("The Delete operation failed as expected.") End Try 2.DirectoryInfo.Exists 属性获取指示目录是否存在的值 属性值 : 如果目录存在, 则为 true, 否则为 false 下面的示例演示了 Exists 属性在将源目录复制到目标目录时的用法 Imports System Module Module1 Public Sub CopyDirectory(ByVal SourceDirectory As String, ByVal TargetDirectory As String) Dim source As DirectoryInfo = New DirectoryInfo(SourceDirectory) Dim target As DirectoryInfo = New DirectoryInfo(TargetDirectory) If (source.exists = False) Then Return If (target.exists = False) Then target.create() Dim sourcefiles As FileInfo() = source.getfiles() Dim i, j As Integer For i = 0 To sourcefiles.length - 1 File.Copy(sourceFiles(i).FullName, target.fullname + "\\" + sourcefiles(i).name, True) Next i Dim sourcedirectories As DirectoryInfo() = source.getdirectories() For j = 0 To sourcedirectories.length - 1 CopyDirectory(sourceDirectories(j).FullName, target.fullname + "\\" + sourcedirectories(j).name) Next j source = Nothing target = Nothing Sub Main() CopyDirectory("D:\\Tools", "D:\\NewTools") End Module 3.DirectoryInfo.Name 属性获取此 DirectoryInfo 实例的名称 属性值 : 目录名称 下面的实例仅显示当前 DirectoryInfo 实例的名称 第 6 章 Windows 高级界面设计 119

26 120 Visual Basic.NET 程序设计案例教程 Imports System Class GetAName Public Shared Sub Main() Dim dir As New DirectoryInfo(".") Dim dirname As String = dir.name Console.WriteLine("DirectoryInfo name is {0}.", dirname) 4.DirectoryInfo.Parent 属性获取指定子目录的父目录 属性值 : 父目录, 或者如果路径为空或如果文件路径表示根 ( 如 \ C: 或 * \\server\share ), 则为空引用 ( 在 Visual Basic 中为 Nothing) 下面的实例演示了引用指定目录的父目录的方法 Imports System Public Class MoveToTest Public Shared Sub Main() Dim di As New DirectoryInfo("TempDir") If di.exists = False Then di.create() Dim dis As DirectoryInfo = di.createsubdirectory("subdir") Dim parentdir As DirectoryInfo = dis.parent Console.WriteLine("The parent directory of '{0}' is '{1}'", dis.name, parentdir.name) di.delete(true) 5.DirectoryInfo.Root 属性获取路径的根部分 属性值 : 代表路径的根的 DirectoryInfo 对象 下面的实例演示了如何确定指定目录的根目录位置 Imports System Public Class MoveToTest Public Shared Sub Main() Dim di As New DirectoryInfo("TempDir") If di.exists = False Then di.create() Dim dis As DirectoryInfo = di.createsubdirectory("subdir") Console.WriteLine("The root path of '{0}' is '{1}'", dis.name, dis.root) di.delete(true) 6.DirectoryInfo.Create 方法创建目录 如果目录已经存在, 则此方法不执行任何操作 下面的实例检查指定目录是否存在 ; 如果该目录不存在, 则创建此目录, 然后删除该目录

27 Imports System Public Class Test Public Shared Sub Main() Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir") Try If di.exists Then Console.WriteLine("That path exists already.") Return di.create() Console.WriteLine("The directory was created successfully.") di.delete() Console.WriteLine("The directory was deleted successfully.") Catch e As Exception Console.WriteLine("The process failed: {0}", e.tostring()) End Try 7.DirectoryInfo.Delete 方法如果此 DirectoryInfo 为空, 则删除它 下面的实例在试图删除一个非空目录时引发异常 Imports System Public Class Test Public Shared Sub Main() Dim di1 As DirectoryInfo = New DirectoryInfo("c:\MyDir") Try di1.create() di1.createsubdirectory("temp") Console.WriteLine("I am about to attempt to delete {0}", di1.name) di1.delete() Console.WriteLine("The Delete operation was successful, which was unexpected.") Catch Console.WriteLine("The Delete operation was unsuccessful, as expected.") End Try 8.DirectoryInfo.GetDirectories 方法返回当前目录的子目录 如果没有子目录, 则此方法只返回根目录 返回值 :DirectoryInfo 对象的数组 下面的实例检索根目录下的所有目录并显示目录的名称 Imports System Public Class GetDirectoriesTest Public Shared Sub Main() Dim di As New DirectoryInfo("c:\") Dim diarr As DirectoryInfo() = di.getdirectories() Dim dri As DirectoryInfo For Each dri In diarr 第 6 章 Windows 高级界面设计 121

28 122 Visual Basic.NET 程序设计案例教程 Console.WriteLine(dri.Name) Next dri 9.DirectoryInfo.GetFiles 方法返回当前目录的文件列表 如果 DirectoryInfo 中没有文件, 则此方法返回一个空数组 返回值 :FileInfo 类型数组 下面的实例从指定的目录检索文件 Imports System Public Class GetFilesTest Public Shared Sub Main() Dim di As New DirectoryInfo("c:\") Dim fiarr As FileInfo() = di.getfiles() Dim fri As FileInfo For Each fri In fiarr Console.WriteLine(fri.Name) Next fri 知识点 3 FileInfo 类 提供创建 复制 删除 移动和打开文件的实例方法, 并且帮助创建 FileStream 对象 无法继承此类 1.FileInfo 构造函数初始化 FileInfo 类的新实例, 它作为文件路径的包装 参数 :filename, 新文件的完全限定名或相对文件名 下面的实例使用此构造函数创建两个文件, 并接着对其进行写入 读取 复制和删除操作 Imports System Class Test Public Shared Sub Main() Dim path As String = "c:\temp\mytest.txt" Dim fi1 As FileInfo = New FileInfo(path) If fi1.exists = False Then Dim sw As StreamWriter = fi1.createtext() sw.writeline("hello") sw.writeline("and") sw.writeline("welcome") sw.flush() sw.close() Dim sr As StreamReader = fi1.opentext() Do While sr.peek() >= 0 Console.WriteLine(sr.ReadLine()) Loop Try Dim path2 As String = path + "temp" Dim fi2 As FileInfo = New FileInfo(path2) fi2.delete()

29 fi1.copyto(path2) Console.WriteLine("{0} was copied to {1}.", path, path2) fi2.delete() Console.WriteLine("{0} was successfully deleted.", path2) Catch e As Exception Console.WriteLine("The process failed: {0}", e.tostring()) End Try 2.FileInfo.Directory 属性获取父目录的实例 属性值 : 表示此文件父目录的 DirectoryInfo 对象 下面的实例打开或创建一个文件, 确定其完整路径, 确定并显示目录的所有内容 Imports System Public Class DirectoryTest Public Shared Sub Main() Dim fi As New FileInfo("temp.txt") Dim di As DirectoryInfo = fi.directory Dim fsi As FileSystemInfo() = di.getfilesysteminfos() Console.WriteLine("The directory '{0}' contains the following files and directories:", di.fullname) Dim info As FileSystemInfo For Each info In fsi Console.WriteLine(info.Name) Next info 3.FileInfo.DirectoryName 属性获取表示目录的完整路径的字符串 属性值 : 表示目录的完整路径的字符串 下面的实例检索指定文件的完整路径 Dim filename As String = "C:\autoexec.bat" Dim fileinfo As New FileInfo(fileName) If Not fileinfo.exists Then Return Console.WriteLine("{0} has a directoryname of {1}", filename, fileinfo.directoryname) 4.FileInfo.Exists 属性获取指示文件是否存在的值 属性值 : 如果该文件存在, 则为 true; 如果该文件不存在或如果该文件是目录, 则为 false 下面的实例使用 Exists 属性确保文件在打开之前已经存在 Function OpenDataFile(ByVal FileName As String) As Byte() If FileName Is Nothing OrElse FileName.Length = 0 Then Throw New ArgumentNullException("FileName") Dim finfo As New FileInfo(FileName) If Not finfo.exists Then Throw New FileNotFoundException("The file was not found.", FileName) Dim fstream As New FileStream(FileName, FileMode.Open) Dim buffer(fstream.length) As Byte fstream.read(buffer, 0, Fix(fStream.Length)) Return buffer 第 6 章 Windows 高级界面设计 123

30 124 Visual Basic.NET 程序设计案例教程 End Function 5.FileInfo.Length 属性获取当前文件的大小 如果包含该文件的文件系统不支持此信息, 则此属性值为空引用 ( 在 Visual Basic 中为 Nothing) 属性值 : 当前文件的大小 下面的实例显示指定文件的大小 Imports System Public Class FileLength Public Shared Sub Main() Dim di As New DirectoryInfo("c:\") Dim fiarr As FileInfo() = di.getfiles() Dim f As FileInfo Console.WriteLine("The directory {0} contains the following files:", di.name) For Each f In fiarr Console.WriteLine("The size of {0} is {1} bytes.", f.name, f.length) Next f 6.FileInfo.Name 属性获取文件名 属性值 : 文件名 下面的实例使用 Name 属性显示当前目录中的文件名 Imports System Public Class NameTest Public Shared Sub Main() Dim di As New DirectoryInfo(Environment.CurrentDirectory) Dim fi As FileInfo() = di.getfiles() Console.WriteLine("The following files exist in the current directory:") Dim fitemp As FileInfo For Each fitemp In fi Console.WriteLine(fiTemp.Name) Next fitemp 7.FileInfo.Create 方法创建文件 默认情况下, 将向所有用户授予对新文件的完全读 / 写访问权限 返回值 : 新文件 下面的示例创建对文件的引用, 然后使用 FileInfo.Create() 在磁盘上创建此文件 Imports System Public Class DeleteTest Public Shared Sub Main() Dim fi As New FileInfo("temp.txt") Dim fs As FileStream = fi.create() fs.close() fi.delete()

31 8.FileInfo.CopyTo 方法将现有文件复制到新文件 格式 1: FileInfo.CopyTo(String) ' 将现有文件复制到新文件, 不允许改写现有文件 Visual Basic( 声明 ): Public Function CopyTo ( _ destfilename As String _ ) As FileInfo 参数 :destfilename 为要复制到的新文件的名称 返回值 : 带有完全限定路径的新文件 格式 2: FileInfo.CopyTo(String, Boolean) ' 将现有文件复制到新文件, 允许改写现有文件 Visual Basic( 声明 ): Public Function CopyTo ( _ destfilename As String, _ overwrite As Boolean _ ) As FileInfo 参数 :destfilename 为要复制到的新文件的名称 ;overwrite 若为 true, 则允许改写现有文件 ; 否则为 false 返回值 : 新文件, 或者如果 overwrite 为 true, 则改写现有文件 如果文件存在, 且 overwrite 为 false, 则会发生 IOException 下面的实例演示了 CopyTo 方法的两个重载 Imports System Public Class Test Public Shared Sub Main() Dim path As String = "c:\temp\mytest.txt" Dim path2 As String = path + "temp" Dim fi As FileInfo = New FileInfo(path) Dim fi2 As FileInfo = New FileInfo(path2) Try Dim fs As FileStream = fi.create() fs.close() fi2.delete() fi.copyto(path2) Console.WriteLine("{0} was copied to {1}.", path, path2) fi.copyto(path2, True) Console.WriteLine("The second Copy operation succeeded, which is expected.") Catch Console.WriteLine("Double copying was not allowed, which is not expected.") End Try 9.FileInfo.Delete 方法永久删除文件 如果文件不存在, 则此方法不执行任何操作 下面的实例说明 Delete 方法 Imports System Imports System.Text Public Class Test Public Shared Sub Main() 第 6 章 Windows 高级界面设计 125

32 126 Visual Basic.NET 程序设计案例教程 Dim path As String = "c:\temp\mytest.txt" Dim fi As FileInfo = New FileInfo(path) Try Dim sw As StreamWriter = fi.createtext() sw.close() Dim path2 As String = path + "temp" Dim fi2 As FileInfo = New FileInfo(path2) fi2.delete() fi.copyto(path2) Console.WriteLine("{0} was copied to {1}.", path, path2) fi2.delete() Console.WriteLine("{0} was successfully deleted.", path2) Catch e As Exception Console.WriteLine("The process failed: {0}", e.tostring()) End Try 知识点 4 DirListBox DriveListBox 和 FileListBox 控件 建议使用 OpenFileDialog 和 SaveFileDialog 组件提供对文件系统的访问 ; 但是, 如果创建自己的文件对话框, 可以使用 Visual Basic 2005 在 Microsoft Visual Basic 兼容性运行库中提供的 DirListBox DriveListBox 和 FileListBox 控件 可以使用下列过程将 DirListBox DriveListBox 或 FileListBox 添加到 Windows 应用程序项目 添加对兼容性库的引用 : (1) 选择 项目 添加引用 命令 (2) 在弹出的 添加引用 对话框中, 单击.NET 选项卡 在 组件名称 列表中选择 Microsoft.VisualBasic.Compatibility, 然后单击 确定 按钮, 一个引用随即会添加到项目中 将控件添加到工具箱的方法如下 : (1) 选择 视图 工具箱 命令 (2) 展开 所有 Windows 窗体 部分 右击其标题栏, 然后单击 选择项 (3) 在 选择工具箱项 对话框中选中 DirListBox DriveListBox 和 FileListBox 组件, 然后单击 确定 按钮, 这些控件随即会添加到 工具箱 中, 可以像任何其他 Windows 窗体控件一样使用它们 任务 4 解析 1. 控件的属性 ( 如表 6-12 所示 ) 表 6-12 控件属性说明 控件 Name 属性 Text 属性其他属性 Form FormView 文件浏览器 DriveListBox DirListBox ListView 2. 源代码 Public Class FormView DriveListBoxView DirListBoxView ListViewFile

33 Private Sub DriveListBoxView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DriveListBoxView.SelectedIndexChanged Me.DirListBoxView.Path = Me.DriveListBoxView.Drive Private Sub PopulateListView() Me.ListViewFile.View = View.Details Dim header1, header2 As ColumnHeader header1 = New ColumnHeader header2 = New ColumnHeader header1.text = " 文件名称 " header1.textalign = HorizontalAlignment.Left header1.width = 150 header2.text = " 位置 " header2.textalign = HorizontalAlignment.Left header2.width = 550 Me.ListViewFile.Columns.Add(header1) Me.ListViewFile.Columns.Add(header2) Dim dirinfo As New System.IO.DirectoryInfo(Me.DirListBoxView.Path) Dim file As System.IO.FileInfo Dim files() As System.IO.FileInfo = dirinfo.getfiles() Me.ListViewFile.Items.Clear() If Not (files Is Nothing) Then For Each file In files Dim item As New ListViewItem(file.Name) item.subitems.add(file.fullname) Me.ListViewFile.Items.Add(item) Next Private Sub DirListBoxView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DirListBoxView.SelectedIndexChanged Me.PopulateListView() 习题六 1.Visual Basic.NET 中, 程序员修改了主窗体的某个属性后, 发现无法启动程序, 原因可能是 ( ) A. 修改了主窗体的 Caption 属性 B. 修改了主窗体的 ismainform 属性 C. 修改了主窗体的 Name 属性 D. 修改了 Main 函数 2. 在窗体的成员方法 dosomthing 中, 将窗体位置居中显示, 应调用 ( ) 窗体方法 A.Center() C.MoveToCenter() B.CenterToScreen() D.Show() 3.( ) 窗体在关闭之前不允许用户与程序中其他窗体进行交互 A. 主窗体 B. 对话框 C. 模态窗体 D. 非模态窗体 4.Visual Basic.NET 窗体中提供的是 Hide 方法的作用是 ( ) A. 销毁窗体对象 B. 关闭窗体 C. 将窗体极小化 D. 隐藏窗体 5.Visual Basic.NET 窗体对象的 Close 方法的作用是 ( ) 第 6 章 Windows 高级界面设计 127

34 128 Visual Basic.NET 程序设计案例教程 A. 极小化窗体 B. 隐藏窗体 C. 关闭窗体 D. 销毁窗体对象 6. 在使用 OpenFileDialog 对话框控件时, 希望通过对话框只查找 C++ 文件的程序文件 (*.CPP) 文件和头文件 (*.H), 则 OpenFileDialog 对象的 Filter 属性应 ( ) 设置 A. C++ 程序文件 :*.CPP;C++ 头文件 :*.H B. C++ 程序文件 *.CPP C++ 头文件 *.H C. C++ 程序文件 \*.CPP\C++ 头文件 \*.H D. C++ 程序文件 ->*.CPP;C++ 头文件 ->*.H 7.Win 窗体设计时, 应该为工具栏的 ( 具栏的按钮 ) 事件编写事件处理程序, 以响应用户单击工 A.Click B.ButtonClick C.KeyDown D.MouseDown 8.Win 窗体的工具栏对象为 ToolBar1 为了在工具栏中添加新的按钮, 应该在对象 ToolBar1 的 属性 视图下编辑 ToolBar1 的 ( ) 属性 A.Appearance B.ImageList C.Buttons D.ShowToolTips 9.Win 窗体的工具栏对象为 ToolBar1 为了将工具栏中的所有按钮用图形显示, 则应该在对象 ToolBar1 的 属性 视图下编辑 ToolBar1 的 ( ) 属性 A.Appearance B.ImageList C.Buttons D.ShowToolTips 10. 若不准备使用状态栏的窗格显示信息, 则应该将 ( ) 属性设置为 False A.ShowPanels B.Panels C.Enabled D.Visible 11. 如要实现菜单功能, 应向菜单项的 ( ) 事件添加代码 A.Command B.Click C.Popup D.Select 12.Visual Basic.NET 窗体常见属性中, 属性用于显示控件文本, 属性用于显示控件文本的字体, 属性用于设置窗体在项目中的名称 13.Visual Basic.NET 中, 用于显示某个窗体的方法是, 用于关闭窗体, 把窗体从内存中清除的方法是, 用于隐藏窗体, 但窗体仍然在内存中的方法是 14. 在列表框添加选项有哪几种方法? 15. 如果要一个定时器每半分钟产生一个 Tick 控件, 则 InterVal 属性应设置为多少? 16. 代码中如何判断用户在通用对话框中选择了 取消 按钮? 17. 创建弹出菜单需要什么控件? 通过什么属性才能将控件与弹出菜单建立关联? 18. 什么是模式对话框? 什么是非模式对话框? 19. 窗体之间数据互访如何才能实现?

Visual Basic D 3D

Visual Basic D 3D Visual Basic 2008 2D 3D 6-1 6-1 - 6-2 - 06 6-2 STEP 1 5-2 (1) STEP 2 5-3 (2) - 6-3 - Visual Basic 2008 2D 3D STEP 3 User1 6-4 (3) STEP 4 User1 6-5 (4) - 6-4 - 06 STEP 5 6-6 (5) 6-3 6-3-1 (LoginForm) PictureBox1

More information

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific

More information

untitled

untitled VB 來 立 李 龍老 年 參 車 令 度 綠 車 不 不 靈 了 來 令來 了老 利 來 練 念 邏 念 數 度 念 狀 不 度 令 數 更 參 VB VB VB 理 VB 類 數 (x,y) (0,0) x y x,y 數 (0,0) (x, 0) (0, y) (x, y) VB 裡 來 VB 來 1 Graphics VB Graphics Private Sub Button1_Click(

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F 1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

Chapter 16 集合

Chapter 16 集合 Chapter 16 集合 20 ArrayList StringCollection 16 本章學習目標 : ArrayList ArrayList Array StringCollection 16-1 21 10-3-8 System.Array Clear Clear 16-1 Clear System.Array Microsoft System.Collection IList 542

More information

穨ac3-3.PDF

穨ac3-3.PDF 3-1 Access 3-1-1 Event Click OnClick Click OnClick AfterUpdate BeforeUpdate On After Before > VBA( ) 3-1 3-1 Access Open Load Sub Funtion 3-1-2 Sub Funtion Private Me Me Forms Reports Form Report VisualBasic

More information

IsPostBack 2

IsPostBack 2 5 IsPostBack 2 TextBox 3 TextBox TextBox 4 TextBox TextBox 1 2 5 TextBox Columns MaxLength ReadOnly Rows Text TextMode TextMode MultiLine TextMode MultiLine True False TextMode MultiLine Password MulitLine

More information

Microsoft Word - 小心翼翼的二十一點N.doc

Microsoft Word - 小心翼翼的二十一點N.doc 投 稿 類 別 : 資 訊 類 篇 名 : 小 心 翼 翼 的 二 十 一 點 作 者 : 陳 鈺 文 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 李 伯 謙 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 胡 家 媛 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 指 導 老 師 : 周 曉 玲 老 師 陳 思 亮 主 任 壹 前 言 一 研 究 動 機 平

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information

2010年3月计算机等级考试四级网络工程师笔试

2010年3月计算机等级考试四级网络工程师笔试 计 算 机 二 级 VB 经 典 预 测 题 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上, 答 在 试 卷 上 不 得 分 (1) 下 列 叙 述 中 正 确 的 是 ( ) A) 循 环 队 列 是 队 列 的 一 种 链 式 存 储 结 构 B) 循 环 队 列 是 队

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

untitled

untitled PowerBuilder Tips 利 PB11 Web Service 年度 2 PB Tips PB9 EAServer 5 web service PB9 EAServer 5 了 便 web service 來說 PB9 web service 力 9 PB11 release PB11 web service 力更 令.NET web service PB NVO 論 不 PB 來說 說

More information

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f 27 1 Vol.27 No.1 CEMENTED CARBIDE 2010 2 Feb.2010!"!!!!"!!!!"!" doi:10.3969/j.issn.1003-7292.2010.01.011 OPC 1 1 2 1 (1., 412008; 2., 518052), OPC, WinCC VB,,, OPC ; ;VB ;WinCC Application of OPC Technology

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

untitled

untitled 1 .NET 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Response 類 Write 料 Redirect URL Response.Write("!! ives!!"); Response.Redirect("WebForm2.aspx"); (1) (2) Web Form

More information

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1 Chapter 01 Photoshop CS6 的基本操作 本章内容 1.1 Photoshop 的应用领域 1.6 控制面板的显示与隐藏 1.2 位图和矢量图的特性 1.7 新建 打开与保存文件 1.3 像素和分辨率的关系 1.8 图像的缩放 1.4 色彩模式 1.9 屏幕显示模式 1.5 Photoshop CS6 界面 1.10 计算机图形图像常用的色彩模式 Photoshop CS6 艺术设计案例教程

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探 付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探索建设中 成时间 : 2017-07-20 12:13:21 Since 8.6 定义键盘 定义键盘使

More information

untitled

untitled ADF Web ArcGIS Server ADF GeocodeConnection control 4-2 Web ArcGIS Server Application Developer Framework (ADF).NET interop semblies.net Web ADF GIS Server 4-3 .NET ADF Web Represent the views in ArcMap

More information

untitled

untitled 1 LinkButton LinkButton 連 Button Text Visible Click HyperLink HyperLink 來 立 連 Text ImageUrl ( ) NavigateUrl 連 Target 連 _blank _parent frameset _search _self 連 _top 例 sample2-a1 易 連 private void Page_Load(object

More information

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft PowerPoint - OPVB1基本VB.ppt 大 綱 0.VB 能 做 什 麼? CH1 VB 基 本 認 識 1.VB 歷 史 與 版 本 2.VB 環 境 簡 介 3. 即 時 運 算 視 窗 1 0.VB 能 做 什 麼? Visual Basic =>VB=> 程 式 設 計 語 言 => 設 計 程 式 設 計 你 想 要 的 功 能 的 程 式 自 動 化 資 料 庫 計 算 模 擬 遊 戲 網 路 監 控 實 驗 輔 助 自 動

More information

<4D F736F F D E466F726DB3CCD0F2C9E8BCC6D3EBCAB5BCF920B5DA35D5C22E646F63>

<4D F736F F D E466F726DB3CCD0F2C9E8BCC6D3EBCAB5BCF920B5DA35D5C22E646F63> 第 5 章 输入与输出 学习目标 : 理解文件与流的基本概念 ; 了解文件与目录的基本知识及其常用的类 ; 掌握文件流读写方法 5.1 概述 文件是计算机管理数据的基本单位, 同时也是应用程序保存和读取数据的一个重要场所 C# 中文件处理技术称为 I/O 技术, 即输入与输出技术, 或称为流处理技术或文件流处理技术 5.1.1 文件与流 文件和流是既有区别又有联系的两个概念 文件是指在各种存储介质上永久保存数据的有序集合,

More information

Visual Basic 2010 INTRODUCTION 本書導讀! Visual Basic 2010 Visual Basic 2010 Visual Studio Visual Basic Windows Form IV

Visual Basic 2010 INTRODUCTION 本書導讀! Visual Basic 2010 Visual Basic 2010 Visual Studio Visual Basic Windows Form IV FOREWORD 推薦序 Visual Basic Visual Basic 1. 2. 3. 4. 5. 6. Visual Basic.NET Framework Visual Studio 2011/02/28 III Visual Basic 2010 INTRODUCTION 本書導讀! Visual Basic 2010 Visual Basic 2010 Visual Studio Visual

More information

多層次傳銷與獎金系統

多層次傳銷與獎金系統 醒 吾 技 術 學 院 資 訊 管 理 系 ( 五 專 部 ) 九 十 六 學 年 度 畢 業 專 題 多 層 次 傳 銷 與 獎 金 系 統 組 員 : 921506122 游 濬 瑋 921506126 陳 彥 宇 921506139 林 龍 華 921506144 陳 昶 志 921506149 楊 璧 如 指 導 老 師 : 汪 淵 老 師 中 華 民 國 九 十 七 年 一 月 十 一 醒

More information

MVB-1001.DOC

MVB-1001.DOC 20 1.5 10 15 20 25 80 100 CSF 1. 2. 0105 3. 4. 5. 30% 1.5 0.75 1. Visual Basic Visual Basic (A) Visual Basic Enterprise Edition (B) Visual Basic Script Edition (C) Visual Basic Learning Edition (D) Visual

More information

untitled

untitled Data Source 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 8-1 Data Source 8-2 Data Source 8-3 Data Source 8-4 Data Source 8-5 DataSourceID 8-6 DataSourceMode 8-7 DataSource 8-8 8-9 Parameter Direction

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

投影片 1

投影片 1 計算機程式及實習 期末報告 題目 : 六宿炒翻天 班級 : 奈米一乙姓名 : 陳洋翼學號 :4A514050 老師 : 謝慶存 程式說明 設計結帳系統, 選擇數量後, 在按下計算, 將會顯示總金額 若是老人或小孩, 將可享 8 折或 9 折的優惠 程式畫面 填選數量 在火腿蛋炒飯的數量選擇 1, 並按下計算, 可得總金額 50 元 程式畫面 打折 填選完後, 若客人是小孩或老人, 選擇欲打折項目,

More information

VB控件教程大全

VB控件教程大全 Datagrid DataGrid1.Columns.Remove(0) ' 0 DataGrid1.Columns.Add(0).Caption= ' DataGrod1.Columns(0).DataField= Name ' Adodc1.Refresh DataGrid BackColor Font DataGrid CellPadding HTML CellSpacing HTML Width

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

INTRODUCTION TO COM.DOC

INTRODUCTION TO COM.DOC How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU [email protected] This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

Microsoft Word - 序.DOC

Microsoft Word - 序.DOC 了 解 副 程 式 意 義 及 使 用 時 機, 變 數 的 存 取 範 圍 及 多 表 單 的 程 式 設 計 7-1 函 式 7-2 副 程 式 7-3 變 數 的 範 圍 7-4 傳 值 呼 叫 及 傳 址 呼 叫 7-5 多 表 單 程 式 設 計 (MDI) 7-6 習 題 在 程 式 設 計 過 程 中, 程 式 會 因 為 不 斷 成 長, 程 式 碼 會 愈 來 愈 長, 有 一 部

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

2 1999 9 21 2001 21 2001 7 20 90 2002 9 2 21 4 38 30 3 ~ 6 3 2004 12 Ⅰ 1!!!!!!!!!!!!!!!!!!! 2 1. 1 2!!!!!!!!!!!!!!! 1. 2 8!!!!!!!!!!!! 1. 3 19!!!!!!!!!!!!!!!!! 2!!!!!!!!!!!!!!!!!!! 26 2. 1 26!!!!!!!!!!!!

More information

ThreeDtunnel.doc

ThreeDtunnel.doc (12) 1 1. Visual Basic Private Sub LoadDatabase() Dim strip As String Dim straccount As String Dim strpassword As String Dim strdatabase As String Dim strtable As String Dim strsql As String Dim strtemp1

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

2

2 1 2 1-1 Visual Basic 3 1-2 3/8-3/21 3/22-4/4 4/5-4/18 4/19-5/2 5/3-5/16 5/17-5/30 5/31-6/13 6/14-6/27 6/28-7/11 7/12-7/25 7/26-8/8 8/9-8/22 8/25-9/5 9/6-9/19 9/20-10/3 10/4-10/17 10/18-10/31 11/15-11/28

More information

untitled

untitled 說 參 例 邏 邏 1. 說 2. 數 數 3. 8 4. 理念 李 龍老 立 1. 理 料 2. 理 料 3. 數 料 4. 流 邏 念 5. 良 6. 讀 行 行 7. 行 例 來 邏 1. 說 說 識 量 2. 說 理 類 3. 數 數 念 4. 令 5. 良 6. 流 邏 念 7. 說 邏 理 力 1. 2. 3. 4. 5. 列 念 1 參 1. ( Visual Basic 例 ) (1)

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo [email protected] https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63> 基于 WINCE 平台 C# 编程要点之一 本文主要介绍在基于 Windows CE 平台的英创嵌入式主板下进行 C#(Microsoft Visual Stdio.Net 2005) 应用程序开发时会常常用到的一些功能函数以及开发方法, 这些方法适用于英创采用 WinCE 平台的所有型号嵌入式主板, 包括 EM9000 EM9260 EM9160 等 本文要点包括 : 文件的删除和复制 如何获取存取设备的空间大小

More information

Microsoft PowerPoint - 06.ppt

Microsoft PowerPoint - 06.ppt 楚广明 C# 简明教程 Email:[email protected] Blog:http://www.cnblogs.com/chu888chu888 楚广明 C# 简明教程第 1 页版本 V1.0 1 Module 6: Input/Output 楚广明 C# 简明教程第 2 页版本 V1.0 2 Review 在这一章中, 我们将主要学习如何使用 Microsoft.NET FrameWork

More information

FPGAs in Next Generation Wireless Networks WPChinese

FPGAs in Next Generation Wireless Networks WPChinese FPGA 2010 3 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 FPGAs in Next Generation Wireless Networks GSM GSM-EDGE 384kbps CDMA2000

More information

VC访问VB的ActiveX.dll.doc

VC访问VB的ActiveX.dll.doc 如何从 VisualC++6.0 可执行文件访问 VisualBasicActiveXDLL 本文介绍三种方法可以从 VisualC++6.0 访 VisualBasicActiveXDLL 执行 1. 创建 VisualBasicActiveXDLL 项目 默认情况下创建 Class 1 2. 以下代码添加到 Class 1: Public Function MyVBFunction(x As Integer)

More information

C#程序设计实验

C#程序设计实验 程序设计基础 实验指导 / 实验一 : 认识 C# 1 程序设计基础 实验指导 实验一 : 认识 C# 一 实验目的 1 掌握 Visual Studio 的基本操作方法, 学会使用该编译工具 2 掌握编辑 编译 运行控制台应用程序的基本过程 3 掌握建立 Windows 窗体应用程序的基本过程 4 通过运行 C# 程序, 初步了解 C# 程序的特点 二 实验学时 2 学时 三 实验类型 验证性实验

More information

untitled

untitled 1 .NET 料.NET 料 料來 類.NET Data Provider SQL.NET Data Provider System.Data.SqlClient 料 MS-SQL OLE DB.NET Data Provider System.Data.OleDb 料 Dbase FoxPro Excel Access Oracle Access ODBC.NET Data Provider 料

More information

Business Objects 5.1 Windows BusinessObjects 1

Business Objects 5.1 Windows BusinessObjects 1 Business Objects 5.1 Windows BusinessObjects 1 BusinessObjects 2 BusinessObjects BusinessObjects BusinessObjects Windows95/98/NT BusinessObjects Windows BusinessObjects BusinessObjects BusinessObjects

More information

C H A P T E R 7 Windows Vista Windows Vista Windows Vista FAT16 FAT32 NTFS NTFS New Technology File System NTFS

C H A P T E R 7 Windows Vista Windows Vista Windows Vista FAT16 FAT32 NTFS NTFS New Technology File System NTFS C H P T E R 7 Windows Vista Windows Vista Windows VistaFT16 FT32NTFS NTFSNew Technology File System NTFS 247 6 7-1 Windows VistaTransactional NTFS TxFTxF Windows Vista MicrosoftTxF CIDatomicity - Consistency

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

untitled

untitled Visual Basic 2005 (VB.net 2.0) [email protected] 立 六 數 串 數數 數 數 串 數 串 數 Len( 串 ) 串 度 Len( 123 )=3 LCase( 串 ) 串 LCase( AnB123 ) anb123 UCase( 串 ) 串 UCase( AnB123 ) ANB123 串 數 InStr([ ], 串 1, 串 2[,

More information

6. 4 5 6 7 8 9 10 11 ...1... 1...1...1...2... 3...3...5...9... 11...11...11...12...12... 13...13...14... 16...16...19...20 I 1 ---------------------------------------------------3 2 ------------------------------------------------6

More information

WinMDI 28

WinMDI 28 WinMDI WinMDI 2 Region Gate Marker Quadrant Excel FACScan IBM-PC MO WinMDI WinMDI IBM-PC Dr. Joseph Trotter the Scripps Research Institute WinMDI HP PC WinMDI WinMDI PC MS WORD, PowerPoint, Excel, LOTUS

More information

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344> 1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)

More information

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h 資訊系統與實習 製作 : 林郁君 一 2009.09.28 9X9 'button 被按下後 ' Dim i, j As Integer For i = 1 To 9 'i 從 1 到 9' For j = 1 To 9 'j 從 1 到 9' If j * i < 10 Then ' 如果 j 乘上 i 是為個位數 ' Response.Write(i & "*" & j & " =" & i *

More information

Linux服务器构建与运维管理

Linux服务器构建与运维管理 1 Linux 服务器构建与运维管理 第 2 章 :Linux 基本命令 阮晓龙 13938213680 / [email protected] http://linux.xg.hactcm.edu.cn http://www.51xueweb.cn 河南中医药大学管理科学与工程学科 2018.3 2 提纲 目录与文件的操作 mkdir touch mv cp rm rmdir file tree

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

untitled

untitled 1 Access 料 (1) 立 料 [] [] [ 料 ] 立 料 Access 料 (2) 料 [ 立 料 ] Access 料 (3) 料 料 料 料 料 料 欄 ADO.NET ADO.NET.NET Framework 類 來 料 料 料 料 料 Ex MSSQL Access Excel XML ADO.NET 連 .NET 料.NET 料 料來 類.NET Data Provider

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

EPSON RC+ 7.0 选件 (Ver.7.0) GUI Builder 7.0 Rev.1

EPSON RC+ 7.0 选件 (Ver.7.0) GUI Builder 7.0 Rev.1 EPSON RC+ 7.0 选件 Ver.7.0 GUI Builder 7.0 Rev. 1 C1M13ZS2612R EPSON RC+ 7.0 选件 (Ver.7.0) GUI Builder 7.0 Rev.1 EPSON RC+ 7.0 选件 (Ver.7.0) GUI Builder 7.0 Rev.1 Copyright 2013 SEIKO EPSON CORPORATION. All

More information

Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar (

Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar ( Front 1 - Polar F11 Light OK Back Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar (www.polarfitnesstrainer.com)

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

epub 94-3

epub 94-3 3 A u t o C A D L AY E R L I N E T Y P E O S N A P S T Y L E X R E F - AutoLISP Object ARX A u t o C A D D C L A u t o C A D A u t o d e s k P D B D C L P D B D C L D C L 3.1 Wi n d o w s A u t o C A D

More information

电脑故障诊断排除 1200 例 1 PnP/PCI Configurations PnP OS INSTALLED YES NO CMOS CMOS 2 3 Award Soft Ware, Inc System Configurations 诊断排除 : BIOS BIOS 4 5 Pentium

电脑故障诊断排除 1200 例 1 PnP/PCI Configurations PnP OS INSTALLED YES NO CMOS CMOS 2 3 Award Soft Ware, Inc System Configurations 诊断排除 : BIOS BIOS 4 5 Pentium Chapter 1 1 CPU :,,? 魔法师 : 不会吧! 让我看看, 可能是你没有正确的操作吧, 虽 然电脑会经常出现故障, 但新的电脑应该很少遇到这 种情况的! :,,! 魔法师 : 关于电脑故障的问题太多了, 我得分类为你讲解, 否 则你掌握起来会很困难的, 下面将分别为你讲解主板 和 CPU 故障的诊断与排除方法 学习要点 : 主板故障诊断与排除 CUP 故障诊断与排除 电脑故障诊断排除

More information

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y 拼图游戏 任务说明 本实例实现了拼图游戏的开发 运行程序, 单击 开始 按钮将打乱图片的位置, 效果如图 1 所示, 然后通过鼠标单击图片进行移动, 直到将所有图片都移动到正确位置, 游戏过关, 过关后的效果如图 2 所示 图 1 打乱图片位置的效果图 2 图片移动到正确位置的效果 关键技术 本程序主要通过 Swing 与枚举类实现, 程序将一幅完整的图片平均分成 9 部分, 每一部分为一个正方形,

More information

Microsoft PowerPoint - 第14章.ppt

Microsoft PowerPoint - 第14章.ppt Windows 繪圖的認識 在視窗 Form 表單上, 繪製圖案, 必須要有幾個動作 : Step 1: 定義及取得 Graphics 物件,Graphics 代表 Windows 中的繪圖區域, 範圍為 Form 表單視窗 Step 2: 利用 Graphics 物件來進行各種繪圖 Step 3: 必須釋放 Graphics 物件, 使用 Dispose( ) 釋放 [ 範例 ] 設計一個程式,

More information