【WinForm.NET开发】ToolStrip 控件体系结构

本文内容

  1. ToolStrip
  2. ToolStripItem
  3. 附件类

ToolStrip 和 ToolStripItem 类提供了一种灵活的可扩展系统,用于显示工具栏、状态和菜单项。 这些类都包含在 System.Windows.Forms 命名空间中 ,它们的名称通常都带有“ToolStrip”前缀(如 ToolStripOverflow)或“Strip”后缀(如 MenuStrip)。

1、ToolStrip

以下主题介绍 ToolStrip 和派生自它的控件。

ToolStrip 是 MenuStripStatusStrip 和 ContextMenuStrip 的抽象基类。 下面的对象模型演示了 ToolStrip 继承层次结构。

toolstrip-object-model.gif?view=netframeworkdesktop-4.8

可以通过 Items 集合访问 ToolStrip 中的所有项。 可以通过 DropDownItems 集合访问 ToolStripDropDownItem 中的所有项。 在派生自 ToolStrip 的类中,还可以使用 DisplayedItems 属性仅访问当前显示的项。 这些项当前不在溢出菜单中。

以下项专门设计为在所有方向上无缝地与 ToolStripSystemRenderer 和 ToolStripProfessionalRenderer 配合工作。 默认情况下,它们在设计时可用于 ToolStrip 控件:

MenuStrip

MenuStrip 是取代 MainMenu 的顶级容器。 它还提供键处理和多文档界面 (MDI) 功能。 在功能上,ToolStripDropDownItem 和 ToolStripMenuItem 与 MenuStrip 配合工作,尽管它们派生自 ToolStripItem

以下项专门设计为在所有方向上无缝地与 ToolStripSystemRenderer 和 ToolStripProfessionalRenderer 配合工作。 默认情况下,它们在设计时可用于 MenuStrip 控件:

StatusStrip

StatusStrip 替换了 StatusBar 控件。 StatusStrip 的特殊功能包括自定义表格布局、窗体大小调整和移动手柄支持以及 Spring 属性(使 ToolStripStatusLabel 可以自动填充可用空间)。

以下项专门设计为在所有方向上无缝地与 ToolStripSystemRenderer 和 ToolStripProfessionalRenderer 配合工作。 默认情况下,它们在设计时可用于 StatusStrip 控件:

ContextMenuStrip

ContextMenuStrip 替换了 ContextMenu。 可以将 ContextMenuStrip 与任何控件关联,右键单击会自动显示上下文菜单(或快捷菜单)。 可以使用 Show 方法以编程方式显示 ContextMenuStrip。 ContextMenuStrip 支持可取消的 Opening 和 Closing 事件来处理动态填充和多单击情形。 ContextMenuStrip 支持图像、菜单项检查状态、文本、访问键、快捷方式和级联菜单。

以下项专门设计为在所有方向上无缝地与 ToolStripSystemRenderer 和 ToolStripProfessionalRenderer 配合工作。 默认情况下,它们在设计时可用于 ContextMenuStrip 控件:

ToolStrip 通用功能

以下主题介绍对 ToolStrip 和派生控件通用的功能和行为。

绘制

可以通过多种方式在 ToolStrip 控件中执行自定义绘制。 与其他 Windows 窗体控件一样,ToolStrip 和ToolStripItem 两者都具有可重写的 OnPaint 方法和 Paint 事件。 与常规绘制一样,坐标系相对于控件的工作区:也就是说,控件的左上角为 0, 0。 ToolStripItem 的 Paint 事件和 OnPaint 方法的行为方式与其他控件绘制事件一样。

ToolStrip 控件还通过 ToolStripRenderer 类提供对项和容器呈现的更精细访问,该类具有用于绘制 ToolStrip 的背景、项背景、项图像、项箭头、项文本和边框的可重写方法。 这些方法的事件参数会公开多个属性,如矩形、颜色和文本格式,你可以根据需要进行调整。

若要仅调整项绘制方式的几个方面,通常会重写 ToolStripRenderer

如果要编写一个新项并且要控制绘制的所有方面,请重写 OnPaint 方法。 在 OnPaint 内部,可以使用来自 ToolStripRenderer 的方法。

默认情况下,ToolStrip 会进行双缓冲(利用 OptimizedDoubleBuffer 设置)。

设为父级

在 ToolStrip 中,容器所有权和设为父级的概念比其他 Windows 窗体容器控件更加复杂。 这对于支持动态情形(例如溢出、跨多个 ToolStrip 项共享下拉项)以及支持从控件生成 ContextMenuStrip 是必需的。

以下列表介绍与设为父级相关的成员并说明其用法。

继承的控件的行为

每当在继承中使用以下控件时,它们便会锁定:

例如,使用上面列表中的一个或多个控件创建新 Windows 窗体应用程序。 将一个或多个控件的访问修饰符设置为 public 或 protected,然后生成项目。 添加从第一个窗体继承的窗体,然后选择继承的控件。 该控件会显示为已锁定,行为如同其访问修饰符是 private 一样。

ToolStripContainer 对继承的支持

ToolStripContainer 控件支持有限继承方案,类似于以下示例:

  1. 创建新的 Windows 窗体应用程序。

  2. 在窗体上添加一个 ToolStripContainer 控件。

  3. 将 ToolStripContainer 的访问修饰符设置为 public 或 protected

  4. 将 ToolStripMenuStrip 和 ContextMenuStrip 控件的任意组合添加到 ToolStripContainer 的 ToolStripPanel 区域。

  5. 生成项目。

  6. 添加从第一个窗体继承的窗体。

  7. 在该窗体上选择继承的 ToolStripContainer

子控件的继承行为

完成前面的步骤后,会发生以下继承行为:

部分信任

部分信任下的 ToolStrip 限制旨在防止无意中输入未经授权的人员或服务可能使用的个人信息。 保护措施如下所示:

  • ToolStripDropDown 控件要求 AllWindows 显示 ToolStripControlHost 中的项。 这适用于内部控件(例如 ToolStripTextBoxToolStripComboBox 和 ToolStripProgressBar)以及用户创建的控件。 如果不满足此要求,则不会显示这些项。 不会引发异常。

  • 不允许将 AutoClose 属性设置为 false,并且会忽略可取消的 Closing 事件参数。 这使得在未关闭下拉项的情况下,无法输入多个击键。 如果不满足此要求,则不会显示这类项。 不会引发异常。

  • 如果许多击键处理事件在 AllWindows 之外的部分信任上下文中发生,则不会引发这些事件。

  • 未授予 AllWindows 时,不会处理访问键。

使用情况

以下使用模式与 ToolStrip 布局、键盘交互和最终用户行为有关:

键盘交互

访问密钥

与 ALT 键结合使用或跟在 ALT 键后使用时,访问键是使用键盘激活控件的一种方法。 ToolStrip 支持显式和隐式访问键。 显式定义会在字母前面使用与号 (&) 字符。 隐式定义使用尝试基于给定 Text 属性中的字符顺序查找匹配项的算法。

快捷键

MenuStrip 使用的快捷键使用 Keys 枚举的组合(不特定于顺序)定义快捷键。 还可以使用 ShortcutKeyDisplayString 属性仅显示带有文本的快捷键,例如显示“Del”而不是“Delete”。

导航

ALT 键会激活 MainMenuStrip 所指向的 MenuStrip。 在此处,CTRL+TAB 会在 ToolStripPanel 中的 ToolStrip 控件之间导航。 数字键盘上的 TAB 键和箭头键会在 ToolStrip 中的项之间导航。 一种特殊算法会处理溢出区域中的导航。 空格键会选择 ToolStripButtonToolStripDropDownButton 或 ToolStripSplitButton

焦点和验证

通过 ALT 键激活时,MenuStrip 或 ToolStrip 通常不会获取焦点,也不会从当前具有焦点的控件中移除焦点。 如果在 MenuStrip 中或 MenuStrip 的下拉列表中承载了某个控件,则当用户按 TAB 键时,该控件会获取焦点。 通常,在通过键盘激活时,可能不会引发 MenuStrip 的 GotFocusLostFocusEnter 和 Leave 事件。 在这种情况下,请改用 MenuActivate 和 MenuDeactivate 事件。

默认情况下,CausesValidation 为 false。 对窗体显式调用 Validate 以执行验证。

Layout

通过使用 LayoutStyle 属性选择 ToolStripLayoutStyle 的成员之一来控制 ToolStrip 布局。

堆积布局

堆积是在 ToolStrip 两端将各个项相互并排排列。 以下列表介绍了堆积布局。

堆积布局的其他功能

Alignment 确定项对齐的 ToolStrip 端。

当 ToolStrip 不能容纳项时,溢出按钮会自动出现。 Overflow 属性设置确定项是始终、根据需要还是从不出现在溢出区域中。

在 LayoutCompleted 事件中,可以检查 Placement 属性以确定项是放置在主 ToolStrip 上、溢出 ToolStrip 上还是当前完全未显示。 项未显示的典型原因是主 ToolStrip 中不能容纳项,并且其 Overflow 属性设置为 Never

可通过将 ToolStrip 放置在 ToolStripPanel 中并将其 GripStyle 设置为 Visible 来使它可移动。

其他布局选项

其他布局选项为 Flow 和 Table

流布局

Flow 布局是 ContextMenuStripToolStripDropDownMenu 和 ToolStripOverflow 的默认布局。 它类似于 FlowLayoutPanel。 Flow 布局的功能如下所示:

表格布局

Table 布局是 StatusStrip 的默认布局。 它类似于 TableLayoutPanel。 Flow 布局的功能如下所示:

2、ToolStripItem

以下主题介绍 ToolStripItem 和派生自它的控件。

ToolStripItem 是进入 ToolStrip 的所有项的抽象基类。 下面的对象模型演示了 ToolStripItem 继承层次结构。

toolstripitem-object-model.gif?view=netframeworkdesktop-4.8

ToolStripItem 类直接从 ToolStripItem 继承,或是通过 ToolStripControlHost 或 ToolStripDropDownItem 间接从 ToolStripItem 继承。

ToolStripItem 控件必须包含在 ToolStripMenuStripStatusStrip 或 ContextMenuStrip 中,不能直接添加到窗体中。 各种容器类设计为包含 ToolStripItem 控件的适当子集。

下表列出了常用 ToolStripItem 控件以及它们在其中具有外观最佳的容器。 虽然任何 ToolStrip 项可以在任何 ToolStrip 派生的容器中承载,但这些项设计为在以下容器中具有最佳外观:

 备注

ToolStripDropDown 不会出现在设计器工具箱中。

展开表

包含的项ToolStripMenuStripContextMenuStripStatusStripToolStripDropDown
ToolStripButtonNoNo
ToolStripComboBoxNo
ToolStripSplitButtonNo
ToolStripLabelNo
ToolStripSeparatorNo
ToolStripDropDownButtonNo
ToolStripTextBoxNo
ToolStripMenuItemNoNo
ToolStripStatusLabelNoNoNoNo
ToolStripProgressBarNoNo
ToolStripControlHostNo

ToolStripButton

ToolStripButton 是用于 ToolStrip 的按钮项。 可以使用各种边框样式显示它,并且可以使用它表示和激活操作状态。 还可以定义它,使其在默认情况下具有焦点。

ToolStripLabel

ToolStripLabel 在 ToolStrip 控件中提供标签功能。 ToolStripLabel 类似于 ToolStripButton,在默认情况下不会获得焦点,并且不会呈现为按下或突出显示。

作为所承载项的 ToolStripLabel 可支持访问键。

可对 ToolStripLabel 使用 LinkColorLinkVisited 和 LinkBehavior 属性,以在 ToolStrip 中支持链接控件。

ToolStripStatusLabel

ToolStripStatusLabel 是专为在 StatusStrip 中使用而设计的 ToolStripLabel 版本。 特殊功能包括 BorderStyleBorderSides 和 Spring

ToolStripSeparator

ToolStripSeparator 会根据方向将垂直或水平线添加到工具栏或菜单。 通过它可对项(如菜单上的项)进行分组或区分。

可以通过从下拉列表中进行选择,在设计时添加 ToolStripSeparator。 但是,还可以通过在设计器模板节点或 Add 方法中键入连字符 (-),来自动创建 ToolStripSeparator

ToolStripControlHost

ToolStripControlHost 是 ToolStripComboBoxToolStripTextBox 和 ToolStripProgressBar 的抽象基类。 ToolStripControlHost 可以通过两种方式承载其他控件,包括自定义控件:

  • 使用派生自 Control 的类构造 ToolStripControlHost。 若要完全访问所承载控件和属性,必须将 Control 属性强制转换为它所表示的实际类。

  • 扩展 ToolStripControlHost,并在继承的类的无参数构造函数中,调用基类构造函数(传递派生自 Control 的类)。 使用此选项可以包装常用控件方法和属性,以便可在 ToolStrip 中轻松访问。

ToolStripComboBox

ToolStripComboBox 是为在 ComboBox 中承载而优化的 ToolStrip。 所承载控件的属性和事件的子集在 ToolStripComboBox 级别进行公开,但基础 ComboBox 控件可通过 ComboBox 属性进行完全访问。

ToolStripTextBox

ToolStripTextBox 是为在 TextBox 中承载而优化的 ToolStrip。 所承载控件的属性和事件的子集在 ToolStripTextBox 级别进行公开,但基础 TextBox 控件可通过 TextBox 属性进行完全访问。

ToolStripProgressBar

ToolStripProgressBar 是为在 ProgressBar 中承载而优化的 ToolStrip。 所承载控件的属性和事件的子集在 ToolStripProgressBar 级别进行公开,但基础 ProgressBar 控件可通过 ProgressBar 属性进行完全访问。

ToolStripDropDownItem

ToolStripDropDownItem 是 ToolStripMenuItemToolStripDropDownButton 和 ToolStripSplitButton 的抽象基类,可以直接承载项,也可以在下拉容器中承载其他项。 为此,可将 DropDown 属性设置为 ToolStripDropDown,并设置 ToolStripDropDown 的 Items 属性。 可通过 DropDownItems 属性直接访问这些下拉项。

ToolStripMenuItem

ToolStripMenuItem 是一种 ToolStripDropDownItem,与 ToolStripDropDownMenu 和 ContextMenuStrip 配合工作来处理菜单的特殊突出显示、布局和列排列。

ToolStripDropDownButton

ToolStripDropDownButton 类似于 ToolStripButton,但它在用户单击时会显示下拉区域。 可通过设置 ShowDropDownArrow 属性来隐藏或显示下拉箭头。 ToolStripDropDownButton 承载用于显示溢出 ToolStrip 的项的 ToolStripOverflowButton

ToolStripSplitButton

ToolStripSplitButton 合并了按钮和下拉按钮功能。

使用 DefaultItem 属性可将所选下拉项的 Click 事件与按钮上显示的项同步。

ToolStripItem 通用功能

ToolStripItem 提供以下对继承控件通用的功能和选项:

  • 核心事件

  • 图像处理

  • 保持同步

  • 文本和图像关系

  • 显示样式

核心事件

ToolStripItem 控件接收自己的单击、鼠标和绘制事件,还可以执行一些键盘预处理。

图像处理

ImageImageAlignImageIndexImageKey 和 ImageScaling 属性与图像处理的各个方面相关。 可通过直接设置这些属性,或通过设置仅运行时 ImageList 属性,在 ToolStrip 控件中使用图像。

图像缩放由 ToolStrip 和 ToolStripItem 中的属性交互确定,如下所示:

保持同步

Alignment 属性的值可确定项出现在 ToolStrip 的哪一端。 仅当 ToolStrip 布局样式设置为堆栈溢出值之一时,Alignment 属性才有效。

项会按照项出现在项集合中的顺序放置在 ToolStrip 上。 若要以编程方式更改项的放置位置,请使用 Insert 方法在集合中移动项。 此方法会移动项,但不复制它。

文本和图像关系

TextImageRelation 属性定义 ToolStripItem 上图像相对于文本的相对位置。 缺少图像、文本或两者的项被视为特殊情况,以便 ToolStripItem 不会对缺失元素显示空白点。

显示样式

DisplayStyle 使你可以设置项文本和图像属性的值,同时仅显示所需内容。 这通常用于在不同上下文中显示同一项时仅更改显示样式。

3、附件类

提供各种其他功能的类包括:

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很好的C#培训教程,适合初学者使用 目 录 1 .NET体系结构 7 1.1 什么是.NET Framwork? 7 1.2 .NET Framework的内容 7 1.3 如何用.NET Framework编写应用程序 8 1.4 MSIL和JIT 8 1.5 程序集 9 1.6 托管代码 9 1.7 垃圾回收 9 1.8 链接 10 1.9 实例分析 11 1.10 内容总结 13 1.11 独立实践 14 2 C#基础 15 2.1 面向对象基本概念 15 2.2 变量 18 2.3 常量 22 2.4 预定义数据类型 22 2.5 流控制 28 2.6 数组 37 2.7 命名空间 38 2.8 C#预处理器指令 44 2.9 C#编程规则 46 2.10 内容总结 50 2.11 独立实践 50 3 对象和结构 52 3.1 类和结构 52 3.2 类和成员 53 3.3 构造函数 60 3.4 结构 65 3.5 部分类 68 3.6 内容总结 72 3.7 独立实践 72 4 继承 73 4.1 继承的类型 73 4.2 结构和类 75 4.3 调用函数的基类版本 76 4.4 抽象类和抽象函数 77 4.5 密封类和密封方法 79 4.6 修饰符 80 4.7 接口 81 4.8 内容总结 86 4.9 独立实践 86 5 委托与事件 88 5.1 事件的原理 88 5.2 简单的自定义事件 89 5.3 预定义事件处理机制 92 5.4 内容总结 100 5.5 独立实践 100 6 运算符和类型强制转换 101 6.1 运算符 101 6.2 运算符的简化操作 102 6.3 类型的安全性 107 6.4 类型转换 108 6.5 装箱和拆箱 111 6.6 对象的相等比较 112 6.7 引用类型的相等比较 112 6.8 运算符重载 114 6.9 运算符的工作方式 114 6.10 用户定义的数据类型转换 118 6.11 执行用户定义的类型转换 119 6.12 多重数据类型转换 126 6.13 内容总结 130 6.14 独立实践 131 7 字符串与正则表达式 132 7.1 System.String类 132 7.2 StringBuilder成员 135 7.3 字符串的格式化 138 7.4 正则表达式概述 142 7.5 内容总结 149 7.6 独立实践 150 8 集合 151 8.1 集合 151 8.2 索引器 152 8.3 集合接口 155 8.4 字典 157 8.4.1 现实生活中的字典 158 8.4.2 .NET中的字典 158 8.4.3 字典的工作情况 160 8.5 内容总结 167 8.6 独立实践 167 9 错误与异常 168 9.1 错误和异常 168 9.2 捕获异常 170 9.3 System.Exception属性 177 9.4 嵌套的 try块 178 9.5 用户定义的异常类 180 9.6 内容总结 189 9.7 独立实践 189 10 内存管理与指针 190 10.1 后台内存管理 190 10.2 值数据类型 190 10.3 引用数据类型 192 10.4 垃圾收集 194 10.5 释放未托管的资源 195 10.6 析构函数 195 10.7 IDisposable接口 196 10.8 实现IDisposable接口和析构函数 198 10.9 不安全的代码 199 10.10 指针 200 10.11 使用指针优化性能 213 10.12 内容总结 217 11 泛型 218 11.1 泛型的概念 218 11.2 使用泛型 219 11.3 可空类型 219 11.4 运算符和可空类型 220 11.5 System.Collections.Generic命名空间 227 11.6 定义泛型类 237 11.7 default关键字 239 11.8 约束类型 240 11.9 从泛型类中继承 247 11.10 泛型运算符 248 11.11 泛型结构 250 11.12 定义泛型接口 250 11.13 定义泛型方法 251 11.14 定义泛型委托 253 11.15 独立实践 253 12 反射 254 12.1 定制特性 254 12.2 编写定制特性 255 12.3 指定特性参数 258 12.4 VectorClass程序集 261 12.5 反射 263 12.6 查找定制特性 269 12.7 内容总结 273 13 线程 274 13.1 线程 274 13.2 多线程应用程序 275 13.3 线程的处理 276 13.4 线程的优先级 282 13.5 同步 283 13.6 同步问题 285 13.7 内容总结 288 14 Winform基本概念 289 14.1 .NET Windows应用程序开发 289 14.2 .NET框架类库简介 289 14.3 事件和事件处理程序 290 14.4 事件参数 290 14.5 Windows 应用程序 290 14.6 窗体属性、方法和事件 291 14.7 this 关键字 292 14.8 控件概念 292 14.9 各种类型控件 292 14.10 控件的一些通用属性 294 14.11 标签、文本框、按钮控件简介 295 14.12 列表框控件简介 296 14.13 复选列表框 296 14.14 组合框 296 14.15 内容总结 302 15 Winform控件 303 15.1 控件分类 303 15.2 在窗体之间建立链接 307 15.3 应用程序的启动和关闭 308 15.4 内容总结 308 16 高级用户界面 309 16.1 打印控件的使用 309 16.2 PrintDocument组件 309 16.3 PrintPreviewControl组件 310 16.4 PrintDialog 组件 310 16.5 PrintPreviewDialog组件 311 16.6 PageSetUpDialog控件 311 16.7 对话框 311 16.8 通用对话框 312 16.9 OpenFileDialog控件 312 16.10 SaveFileDialog控件 312 16.11 FontDialog控件 312 16.12 ColorDialog控件 312 16.13 MessageBox消息框 313 16.14 WinForms 中的可视效果 314 16.15 内容总结 315 17 MDI应用程序 316 17.1 SDI程序 316 17.2 MDI程序 316 17.3 MenuStripToolStripMenuItem 317 17.4 toolStrip控件简介 318 17.5 StatusStrip控件 320 17.6 创建对话框 320 17.7 内容总结 321 18 ADO.NET编程 322 18.1 简介 322 18.2 ADO.NET 的优点 322 18.3 ADO.NET 结构 324 18.4 ADO.NET 的基本组件 325 18.5 DataReader 328 18.6 获取单个值 328 18.7 修改数据库中的数据 329 18.8 从SQL Server获取XML数据 329 18.9 DataAdapter 330 18.10 数据集:DataSet 330 18.11 DataTable 330 18.12 DataView 332 18.13 关系 332 18.14 数据绑定 333 18.15 DataRow 简介 335 18.16 操纵数据源中的值 336 18.17 内容总结 336 19 GDI+ 编程 337 19.1 理解绘图规则 337 19.2 测量坐标和区域 341 19.3 绘制可滚动的窗口 343 19.4 颜色 348 19.5 画笔和钢笔 351 19.6 绘制图形和线条 352 19.7 显示图像 355 19.8 绘制文本 357 19.9 字体和字体系列 359 19.10 内容总结 363 20 自定义控件 364 20.1 添加事件处理程序 368 20.2 添加更多的属性 370 20.3 内容总结 372 21 部署与安装 373 21.1 部署的设计 373 21.2 无干涉部署 387 21.3 内容总结 394 22 ASP.NET与Web窗口简介 395 22.1 应用程序方案 395 22.2 Web 应用程序开发周期 399 五个对象实现了服务器端的请求 403 22.3 ASP.NET 的演变 404 22.4 Global.asax 文件 405 22.5 发布网站 408 22.6 内容总结 408 23 ASP.NET中的内置对象 409 23.1 ASP.NET页面 409 23.2 虚拟目录 421 23.3 内容总结 423 24 Web服务器控件 424 24.1 Web 控件 424 24.2 复杂控件 429 24.3 内容总结 431 25 HTML控件 432 25.1 服务器控件 432 25.2 HTMLForm控件 432 25.3 Web服务器控件优缺点 433 25.4 HTML服务器控件优缺点 433 25.5 使用服务器控件设计页面建议 433 25.6 内容总结 439 26 深入服务器对象 440 26.1 Global.asax文件简介 441 26.2 Application 对象 446 26.3 HttpServerUtility类和Server对象 446 26.4 HttpSessionState类和Session对象 448 26.5 内容总结 449 27 ADO.NET WEB应用 450 27.1 回顾ADO.NET 450 27.2 模板概念 464 27.3 ASP.NET 中的数据处理 465 27.4 内容总结 466 28 WEB服务器基础 467 28.1 ASP.NET Web 服务 467 28.2 编写简单的 Web 服务 468 28.3 内容总结 470 28.4 独立实践 470 29 用户控件 471 29.1 用户控件开发 471 29.2 内容总结 479 29.3 独立实践 480 30 Web部署 481 30.1 使用XCOPY部署 481 30.2 使用Visual studio的Copy Web Site功能部署 482 30.3 使用Visual Studio的Precompilation预编译部署 482 30.4 内容总结 483 30.5 独立实践 484
c#编程集合资料,不错的应用设计,另附一些开发案例的下载地址,欢迎大家下载学习。 学习完本课程之后,我们需要达到以下目标: (1) 掌握基本的C#语法,熟练运用C#编写基本的程序逻辑。 (2) 能够创建C#控制台应用程序并处理输入输出。 (3) 掌握C#中的数组,并对数组进行相应的排序,查找操作。 (4) 熟练使用C#的字符串对象。 (5) 掌握Windows窗体应用程序的创建,能熟练使用常用的控件设计窗体界面。 (6) 掌握MDI应用程序的开发步骤。 (7) 了解ADO.NET的组成和工作原理。 (8) 通过ADO.NET访问对C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 课程说明… 第1章C#语法基础…… 核心技能部分 1.1 Net与C#概述. 111Net与C#的产生与应用 1.1.2 Visual studio 10 1.1.3创建C井应用程序 12 2C#语言基础 16 121变量与常量…16 12.2运算符和表达式 19 123C#语言中的注释 1.2.4使用 Console处理输入输出 21 1.3 C#语句结构 25 131条件语句 .25 132循环结构 32 任务实训部分.… 38 1:根据时间输出问候信息…… 38 2:三个数字比较大小 39 3:判断用户输入的字母 .40 输出裴波那契数列…… 翻着音 40 巩固练习 第2章嵌套循环和数组. 44 核心技能部分… .45 2.1 VS2008中的调试技巧 45 2.2 嵌套循环 47 2.3 数组. 50 231数组的定义 50 232数组的基木操作 50 233数组的排序 51 任务实训部分… 55 1打印等腰三角形 55 2:数组的操作 56 3:数组的排序。 错误!定义书签 4:数组的排序 错误!未定义书签 巩固练习 57 第3章方法与字符串 59 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 核心技能部分 使用方法 311方法的定义 312方法的调用 63 313参数传递 String类 321C#语言中常用的字符串处理方法... 68 322格式字符串 32.3 String Builder类. 3.3 类型转换…14 331隐式转换 74 332显式转换.…… 74 333常用类型转换方法… 7 任务实训部分 77 1:方法的使用 2:从邮件地址提取用广名 80 3:网址类型分析 81 4:字符串转换 82 巩固练习. 84 第4章指导学习:阶段总结 86 知识总结 翻着 .:::a:a:.:::a:B:a:::::..aa:::.:.aa:.:aa::: 86 41.1核心技能目标 86 412知识体系总结… 86 4.2 综合实训 任务1:制作月份日历 任务2:数组数据添加和排序. 错误!未定义书签 任务3:自杀游戏… 错误未定义书签。 第5章 Win form常用控件 核心技能部分 90 创建 Windows应用稈序 90 511 Windows应用程序概述. 90 512创建第一个 Windows应用程序 5.13项目结构分析 5,2 Windows窗体….97 5.,21窗体中的常用属性. 98 522窗体中的常用事件…… 99 Windows窗体中的常用控件 9 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 5.31 Winform控件公共属性… 532标签Labe) 01 533文本框( TextBox) ·,, 101 534按钮( Button)…102 535列表框 ListBox) 102 536组合框 Combobox) 103 53.7单选按钮( Radio Button)和复选框( CheckBox) 104 538图片框( Pictruebo×)..105 54用 Message Box类显示消息窗口 541消息框的显示……106 5.4.2消息框的返回值 107 综合案例:职员信息管理. 109 仟务实训部分…… 115 1:ATM信息查询 115 2:编写建表向导窗体…… 3:火车票预定程厅… 124 巩固练习… 第6章 MD窗体应用程序设计… 核心技能部分…… 130 6.1 SD窗体和MD窗体应用程序简介. 错误!未定义书签。 6.2 单文档应用程序的创建 30 62.1菜单栏( Menustrip) 130 622菜单栏的创建 130 623上下文菜单 ContextMenuStrip) 6.3 多文档应用程序 错误!未定义书签。 631创建多文档界面应用程序. 错误!未定义书签 632排列子窗口 错误未定义书签。 64图像列表( mageList控件… 134 65工具栏( ToolStrip控件) 135 66 状态( StatusStrip) 138 67选项卡( TabControl Timer控件 69 MD综合示例 错误!定义书签 任务实训部分……143 1创建记事本”应用程序 错误!未定义书签 2:增强”记事本”功能∴ 143 3:实现记事本字体样式设置… 144 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 4:变色窗体 巩固练习……… 1448 第7章 使用 ADO. NET完成简单的数据库操作…. ·,, 150 核心技能部分 151 ADO. NET概述 151 1 ADO.NET的简介 151 7.12 ADO.NET的优点 152 713 ADO.NET的结 52 NET Framework数据提供程序 1154 7.21 Connection对象…………………………155 72.2使用 Connection对象链接到数据库 7.3异常操作 57 731try和 catch块 158 732数据库链接示例 Command对象 ∴161 741 Command对象简介 161 742 Command综合示例 任务实训部分 1:实现进销存系统用户注册 168 2:实现进销存系统用户登录.… 171 3:实现用户的删除功能…… .:.::::::.:...:::.:.:a.::::.:::::::::.:::.:::::::.:::.: 172 巩固练习 174 第8章使用 Data Reader完成查询功能 177 核心技能部分… 178 8.1 DataReader对象 811 Data reader对象简介 178 812 Data Reader对象常用的属性和方法 813 Data reader对象的使用 179 8.2 控件 81 821 Listview控件介绍…… 81 822 Listview控件的使用 数据库操作综合示例 187 任务实训部分…… L94 1:使用 Listview控件查询部门员工信息… 94 2:部门员工信息删除和修改 3:实现员工信息模糊查询... 203 巩固练习 204 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 第9章 使用 Dataset实现断开式数据访问 206 核心技能部分.… 207 91数据集( Dataset) ·,, 207 911数据集( DataSet)简介…207 912数据集的结构 08 91.3数据集的工作原理 914创建 Data set对象…… 211 9,2 DataAdapter对象1211 92.1 DataAdapter对象简介… 211 922 DataAdapter对象的使用.. 213 3 Datagridview控什的使用 219 931 Data gridview控件简介 219 932 Datagridview控件的使用. 221 9 综合示例 226 仟务实训部分.… 229 1:航班查询窗体设计 29 2:显示所有航班信息 232 3:根据两地査询航班 .233 4:航班详细信息查询 234 巩固练习 235 第10章课程总复习… …)误!未定义书签。 101知识总结 错误!未定义书签 1011核心技能目标 错误!定义书签。 101.2知识体系总结 错误!未定义书签。 02任务实训 错误!未定义书签。 第11章项目案例:酒店管理系统…… 错误!未定义书签 111训练技能点…… 错误未定义书签。 112需求说明 错误!未定义书签 113设计与思路分析 错误未定义书签 113.1系统功能分析 错误!未定义书签。 1132数据库设计 错误!定义书签。 114实现步骤…… 错误!未定义书签 115时间分配 错误!定义书签 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 第1章C#语法基础 学习内容 c#的发展史 C#的基本语法 C#的流程控制语句 俨能力目标 掌握仗用S2008开发C#NET控制台应用程序 掌握C#语言的基本语法 掌握c#的程序流程控制语句 C#项目开发全程实录视频教程(全10个案例):htt: /cnrdn com/gCxC 本章简介 从本门课开始我们将要开始学习¢#语言和NET平台。本章将使学员对NET和¢#有一个 初步的认识,了解C#开发环境,编写第一个C#控制台应用程序。C#语言的基本语法和我 们之前的学习的C语言、Java语言一样同属于C语言语法系列,有很多相似的地方,同时也 有一些不同的地方,因此我们在学习的时候需要注意它们之间的区别,不要混淆。在本章中, 我们需要掌握c#中的变量、数据类型、运算符、条件、分攴、循环等基C排基础语法,这些 语言层血的知识是我们编写所有程序的基础,因此必须牢固掌握。 核心技能部分 1.1Net与C#概述 1.1.1Net与C#的产生与应用 1. Anders Hejlsberg-C#之父 Anders hejlsberg原木是曾经大名鼎鼎的 Borland公司的一员,他曾经编写了 Pasca编译 器,又把 Turbo pascal变为面向对象的 Object Pascal,并以此为基础开发了轰动全球、盛极 时的廾发工具 Delphi,为 Boland公司赚了个盆钵满盈。 随着 Delphi日渐成熟, Anders的兴趣转向了Java领域,他在」ava开发领域扩展方面有 很多自己独特的想法,并想在此领域大展宏图,但 Borland的经营者们还要靠他这棵“摇 钱树”继续在 Delphi上人肆捞金,所以他有一段郁郁不得志。 比尔盖茨三顾茅庐,力邀 Anders hejlsberg,并许以重金和宽松的环境,终于把 Anders 挖到了微软的旗下,其后由其主持设计,在2000年6月发布了新的开发语言C#(读做C Sharp),此后微软在2002年推出了 Microsoft net开发平台。 3 1.1.1 Anders He jlsberg C#项目开发全程实录视频教程(全10个案例):http://cnrdn.com/gcxc 2.C#语及其特点 与Java一样,C#语言是一个完全的面向对象语言,它继承了C++、Java和 Delphi的优 点,又借鉴了VB的简单易学。体现了当今最新的程序设计技术的功能和精华。C#继承了C 语言的语法风柊,同时又继承了C+的面冋对象特性。不同的是,c#的对象模犁己经面向 Internet进行了重新设计,使用的是NET框架的类库;C#不再提供对指针类型的支持,使得 程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次 结构中由于多重继承带来的可怕后果。NET框架为C#提供了一个强大的、易用的、逻辑结 构一致的程序设计环境。同时,公共语言运行时( Common Language runtime)为C#程序语 言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。其特点有: 语言简洁。 保留了C++的强大功能 快速应用廾发功能 语言的自由性 强大的Web服务器控件。 支持跨平台 与XML相融合 如果之前没有其他话言的编程经验,使用c#语言编程将是一个良好的开端。如果有其 他语言的编程基础,程序员将发现¢#语言除了像ⅤB一样简单易学外,还是一种拥有强大 功能的语言。而且 ASP NET平台也是完仝通过c#语言开发的,这决定了C语言得天独厚的 优势。但在任何情况下,C#语言都不可能孤立地使用,它必须同 Microsoft. net framework 起使用,因为使用C#语言编写的所有代码总是在 Microsoft .net framework中运行。 1.1.2 Visual studio 微软针对Net推岀了功能强大的集成丌发环境来支持开发人员的№et应用程序丌发,这 就是 Visual studio,它是目前最主要的Net平台开发环境。VS集成了 NET Framework和Net 开发插件,可以用来进行几乎所有Net应用程序的设计和开发L作,如 Windows应用程序 Web应用稈序、 Windows服务、智能设备应用程序等。 随着 NET Framework的不断升级, Visua| Studio也在不断升级,其发展历程可以用表1-1-1 来说明 表1-1-1Vs发展历程 年代 2002 2003 2005 2008 2010 廾发工具版木Vs2002 VS2003 VS2005 VS2008 VS2010 Net 1.0 1.1 2.0 3.5 4.0 Framework 由于本学期的知识点主要集中在C#的基本语法、 Win forms开发和 ADO. NET,这些知识
".NET Core", ".NET Framework", WPF (Windows Presentation Foundation), 和 WinForms (Windows Forms) 都是与 .NET 相关的技术,但它们有一些区别。 1. .NET Framework: - .NET Framework 是最早发布的 .NET 平台,它是用于构建 Windows 应用程序的一种技术框架。 - 它提供了广泛的类库和功能,用于开发各种类型的应用程序,包括桌面应用程序、Web 应用程序和服务应用程序等。 - .NET Framework 只能在 Windows 操作系统上运行,因此它对于跨平台开发是不够灵活的。 2. .NET Core: - .NET Core 是微软在 .NET 平台的下一代开发平台,它是一个跨平台的开源框架。 - .NET Core 支持在 Windows、macOS 和 Linux 等多个操作系统上运行,因此可以实现跨平台开发。 - 它具有较小的安装包大小、更快的性能和更好的可扩展性。 - .NET Core 提供了 ASP.NET Core(用于构建 Web 应用程序)和 EF Core(用于数据访问)等组件。 3. WPF (Windows Presentation Foundation): - WPF 是一种用于构建 Windows 桌面应用程序的用户界面技术。 - 它提供了丰富的界面设计功能,支持XAML(可扩展应用程序标记语言)来定义应用程序的用户界面。 - WPF 可以与 .NET Framework 或 .NET Core 一起使用。 4. WinForms (Windows Forms): - WinForms 是一种用于构建 Windows 桌面应用程序的用户界面技术。 - 它使用基于事件的编程模型,通过在窗体上添加控件来构建应用程序的用户界面。 - WinForms 只能与 .NET Framework 一起使用。 总结: .NET Core 是一个跨平台的开源框架,可以用于构建各种类型的应用程序,包括 Web 应用程序和桌面应用程序。.NET Framework 是一个仅限于 Windows 平台的框架,具有更广泛的类库和功能。WPF 和 WinForms 则是两种用于构建 Windows 桌面应用程序的用户界面技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉特思米(gitusme)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值