在ComboBox的Click事件中加载系统字体,如何只加载一次?

couragetodream 2005-07-31 06:20:13
Private Sub Combo1_DropDown()
Dim X As Integer
For X = 1 To Screen.FontCount
Combo1.AddItem Screen.Fonts(X)
Next
End Sub

上面的代码每次单击ComboBox的时候都加载一次,请问有什么方法使ComboBox只加载一次,再单击的时候不加载,直到关闭程序?
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
crycoming 2005-07-31
  • 打赏
  • 举报
回复
Private Sub Combo1_DropDown()
Dim X As Integer
Combo1.clear '''每次加载前清空一下
For X = 1 To Screen.FontCount
Combo1.AddItem Screen.Fonts(X)
Next
End Sub
truewill 2005-07-31
  • 打赏
  • 举报
回复
vb的语法不是太记得了,将就看吧

Private Sub Combo1_DropDown()

static bbb as boolean
if not bbb then
exit sub
endif

bbb = true


Dim X As Integer
For X = 1 To Screen.FontCount
Combo1.AddItem Screen.Fonts(X)
Next
End Sub
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程常用的属性、方法、类和各种技术,每一个知识点都配有具体的示例,便于读者理解。 《C#全能速查宝典》所讲的知识点按照功能和字母进行排序,读者既可以按照功能顺序查找,又可以按照字母顺序学习。 《C#全能速查宝典》不仅适合C#程序设计初学者,也可作为、高级程序开发人员的参考手册。 ============================================================ 图书目录 第1章 C#语言基础 1 1.1 常用概念、关键字及基础类 1 1.1.1 abstract关键字——抽象 1 1.1.2 as操作符——引用类型转换 3 1.1.3 base关键字——从派生类访问基类的成员 3 1.1.4 变量——存储特定类型的数据 4 1.1.5 Console类——控制台的输入流、输出流和错误流 6 1.1.6 Convert类——类型转换 8 1.1.7 常量——值不改变的量 9 1.1.8 Dispose方法——释放资源 10 1.1.9 迭代器——相同类型的值的有序序列的一段代码 10 1.1.10 泛型——处理算法和数据结构 11 1.1.11 分部类——将一个类分成几部分 12 1.1.12 is操作符——检查变量是否为指定的类型 14 1.1.13 lock关键字——锁定 15 1.1.14 namespace关键字——定义命名空间 15 1.1.15 new运算符——创建一个新的类型实例 16 1.1.16 Object类型——所有类型的基类 17 1.1.17 OOP技术——面向对象编程技术 18 1.1.18 ReadLine方法——从当前流读取一行字符 20 1.1.19 typeof运算符——获得系统原型对象的类型 21 1.1.20 using关键字——引入命名空间 22 1.1.21 WriteLine方法——写入流 23 1.2 数学方法类——Math 25 1.2.1 Abs方法——返回指定数字的绝对值 25 1.2.2 Acos方法——返回余弦值为指定数字的角度 26 1.2.3 Asin方法——返回正弦值为指定数字的角度 26 1.2.4 Atan方法——返回正切值为指定数字的角度 27 1.2.5 Pow方法——返回指定数字的指定次幂 27 1.2.6 Round方法——将小数值舍入到指定的精度 28 1.3 流程控制语句 29 1.3.1 break语句——跳出循环 29 1.3.2 case语句——比较表达式以确定结果 30 1.3.3 continue语句——继续执行下一个循环 31 1.3.4 do…while语句——循环语句 31 1.3.5 for语句——循环语句 32 1.3.6 foreach语句——枚举一个集合的元素 33 1.3.7 goto语句——跳转到标签 34 1.3.8 if…else语句——条件判断语句 36 1.3.9 return语句——返回 38 1.3.10 switch case语句——条件判断语句 39 1.3.11 throw语句——显式引发异常 40 1.3.12 try…catch…finally语句——捕捉异常 42 1.3.13 while语句——循环语句 43 1.4 字符串处理 44 1.4.1 AddDays方法——添加天数 44 1.4.2 AddString方法——添加文本字符串 45 1.4.3 Compare方法——比较两个字符串 46 1.4.4 CompareTo方法——比较两个字符串对象 47 1.4.5 DATEADD函数——在指定日期上加一段时间 48 1.4.6 DateDiff方法——获取日期时间的间隔数 48 1.4.7 DateTime结构——表示时间上的一刻 50 1.4.8 DAY函数——返回日期部分的整数 51 1.4.9 DayOfWeek属性——获取星期几 52 1.4.10 Equals方法——比较两个字符串对象 53 1.4.11 First函数——返回查询结果的第一个记录 55 1.4.12 FirstDayOfWeek属性——获取或设置一周的第一天 56 1.4.13 Format方法——格式化字符串 56 1.4.14 GETDATE函数——返回当前系统日期和时间 58 1.4.15 GetDayOfMonth方法——返回几号 59 1.4.16 GetDayOfWeek方法——返回星期几 59 1.4.17 GetDayOfYear方法——返回第几天 60 1.4.18 GetDaysInMonth方法——返回指定月份的天数 60 1.4.19 GetDaysInYear方法——返回指定年份的天数 61 1.4.20 GetMonth方法——返回指定日期的月份 61 1.4.21 GetMonthsInYear方法——返回指定年份的月数 62 1.4.22 GetText方法——检索文本数据 63 1.4.23 GetYear方法——返回指定日期的年份 64 1.4.24 IndexOf方法——确定指定字符在字符串的索引 65 1.4.25 IsLeapYear方法——判断年份是否为闰年 67 1.4.26 IsMatch方法——搜索正则表达式匹配项 67 1.4.27 IsUpper方法——判断是否大写 68 1.4.28 Join方法——串联字符串 69 1.4.29 LastIndexOf方法——确定字符在字符串最后索引 70 1.4.30 Matches方法——检查字符串是否有重复的词出现 71 1.4.31 MONTH函数——返回指定日期月部分的整数 73 1.4.32 PadLeft方法——在左边用空格填充 73 1.4.33 PadRight方法——在右边用空格填充 74 1.4.34 Random类——伪随机数生成器 75 1.4.35 Regex类——正则表达式 76 1.4.36 Split方法——分割字符串 78 1.4.37 String类——字符串 79 1.4.38 StringBuilder类——可变字符串 82 1.4.39 Substring方法——截取字符串 83 1.4.40 TimeSpan对象——表示时间间隔或持续时间 84 1.4.41 ToInt32方法——转换为32位有符号整数 85 1.4.42 ToLongDateString 方法——转换为长日期字符串 86 1.4.43 ToLongTimeString 方法——转换为长时间字符串 87 1.4.44 ToLower方法——转换为小写 87 1.4.45 ToShortDateString方法——转换为短日期字符串 88 1.4.46 ToShortTimeString方法——转换为短时间字符串 88 1.4.47 ToString方法——转换为字符串 89 1.4.48 ToUpper方法——转换为大写 90 1.4.49 Trim方法——移除所有空白字符 91 1.4.50 TrimEnd方法——从尾部移除匹配项 92 1.4.51 TrimStart方法——从开始移除匹配项 92 1.4.52 YEAR函数——返回指定日期的年份的整数 93 1.5 数组与集合 93 1.5.1 Add方法——添加项 93 1.5.2 ArrayList类——集合 95 1.5.3 AsEnumerable方法——转换为IEnumerable类型 97 1.5.4 Clear方法——清空内容 98 1.5.5 Contains方法——确定是否包含某项 99 1.5.6 ContainsKey方法——确定哈希表是否包含特定键 100 1.5.7 ContainsText方法——确定剪贴板是否存在数据 101 1.5.8 ContainsValue方法——确定哈希表是否包含特定值 101 1.5.9 Count属性——获取数目 102 1.5.10 GetEnumerator方法——循环访问对象 103 1.5.11 GetEnvironmentVariables方法——检索环境变量 104 1.5.12 Hashtable类——哈希表 106 1.5.13 Insert方法——插入项 110 1.5.14 Item属性——获取或设置指定索引处的元素 111 1.5.15 Length属性——获取长度 112 1.5.16 Next方法——返回一个指定范围内的随机数 113 1.5.17 Queue类——队列 115 1.5.18 Remove方法——移除指定项 116 1.5.19 RemoveAt方法——移除指定索引处的项 118 1.5.20 Replace方法——替换文件或字符串 119 1.5.21 Reverse方法——反转数组元素 120 1.5.22 Sort方法——数组排序 121 1.5.23 Stack类——堆栈 123 第2章 Windows窗体及常用控件 126 2.1 Form窗体 126 2.1.1 AcceptButton属性——设置接受按钮 126 2.1.2 Activate事件——当激活窗体时发生 126 2.1.3 Appllication类——提供管理应用程序的静态方法 126 2.1.4 CancelButton属性——设置取消按钮 128 2.1.5 Computer类——提供操作计算机组件的属性 129 2.1.6 ComputerInfo类——获取计算机信息 130 2.1.7 Control类——定义控件基类 131 2.1.8 Environment类——提供当前环境和平台的信息 134 2.1.9 Form窗体——可视化界面 136 2.1.10 FormClosed事件——关闭窗体后事件 139 2.1.11 FormClosing事件——关闭窗体前事件 139 2.1.12 Icon属性——设置图标 139 2.1.13 IsMdiContainer属性——设置父窗体 140 2.1.14 LayoutMdi方法——排列子窗体 141 2.1.15 Load事件——窗体加载事件 141 2.1.16 MaximizeBox属性——是否显示最大化按钮 142 2.1.17 Maximum属性——设置数字显示框的最大值 142 2.1.18 MDI窗体——多文档界面 143 2.1.19 MdiChildren属性——获取子窗体的数组 146 2.1.20 MdiParent属性——设置父窗体 147 2.1.21 MinimizeBox属性——是否显示最小化按钮 147 2.1.22 Minimum属性——数字显示框的最小值 148 2.1.23 Opacity属性——设置窗体的透明度级别 148 2.1.24 Owner属性——设置窗体所有者 149 2.1.25 StartPosition属性——设置窗体起始位置 150 2.1.26 StartupPath 属性——获取可执行文件路径 150 2.1.27 TopMost属性——窗体是否应显示为最顶层窗体 151 2.1.28 WindowState属性——窗体的窗口状态 151 2.2 文本类控件 152 2.2.1 AllowEdit属性——是否可以编辑列表项 152 2.2.2 AppendText方法——追加文本 152 2.2.3 BeginEdit方法——将单元格置于编辑模式下 153 2.2.4 Button控件——按钮控件 153 2.2.5 CancelEdit属性——取消更改 155 2.2.6 CanPaste方法——是否可以粘贴数据 155 2.2.7 CanRedo属性——是否有可以重新应用的操作 156 2.2.8 CanSelect属性——是否可以选控件 157 2.2.9 CanUndo属性——能否撤销上一个操作 157 2.2.10 Cut方法——将选定内容移动到“剪贴板” 158 2.2.11 Find方法——搜索指定的项目 158 2.2.12 FindString方法——搜索文本 160 2.2.13 Label控件——标签控件 161 2.2.14 LabelEdit属性——允许用户编辑控件数据 163 2.2.15 LinkLabel控件——以超链接形式显示文本 164 2.2.16 MaskedTextBox控件——使用掩码区分用户输入 166 2.2.17 Multiline属性——是否为多行输入数据 169 2.2.18 PasswordChar属性——取代用户输入而显示的字符 170 2.2.19 Redo方法——重新应用控件上次撤销的操作 171 2.2.20 RichTextBox控件——有格式文本控件 171 2.2.21 Select方法——激活控件 173 2.2.22 SelectAll方法——选定所有文本 176 2.2.23 Selected属性——是否选定 176 2.2.24 SelectedCells属性——用户选定的单元格集合 177 2.2.25 SelectedColumns属性——用户选定的列集合 178 2.2.26 SelectedRows属性——用户选定的行集合 179 2.2.27 SelectionBackColor属性——文本在选时的颜色 180 2.2.28 SelectionColor属性——插入点的文本颜色 180 2.2.29 SelectionEnd属性——设置选定日期范围的结束日期 181 2.2.30 SelectionFont属性——选定文本或插入点的字体 182 2.2.31 SelectionIndent属性——所选内容开始行的缩进距离 183 2.2.32 SelectionLength属性——控件选定的字符数 184 2.2.33 SelectionRange 属性——设置选定的日期范围 185 2.2.34 SelectionStart属性——选择的起始位置的字符索引 185 2.2.35 TextBox控件——输入或显示文本 186 2.2.36 TextChanged事件——Text属性值更改时发生 187 2.3 选择类控件 188 2.3.1 CheckBox控件——复选框控件 188 2.3.2 CheckBoxes属性——是否显示复选框 190 2.3.3 Checked属性——复选框是否处于选状态 190 2.3.4 CheckedChanged事件——Checked属性更改时发生 191 2.3.5 CheckedListBox控件——复选框列表控件 191 2.3.6 CheckState属性——设置CheckBox控件的状态 193 2.3.7 ComboBox控件——下拉组合框控件 194 2.3.8 DomainUpDown控件——上下选择控件 195 2.3.9 DropDownStyle属性——指定组合框样式的值 197 2.3.10 GetItemCheckState方法——当前项的复选状态的值 198 2.3.11 GetItemText方法——指定项的文本表示形式 199 2.3.12 Index属性——从零开始的索引 200 2.3.13 Items属性——数组列表对象的项的集合 200 2.3.14 ListBox控件——列表控件 201 2.3.15 ListView控件——显示带图标的项列表 205 2.3.16 NumericUpDown控件——数值选择控件 208 2.3.17 RadioButton控件——单选按钮 210 2.3.18 SelectedIndex属性——获取选择项的索引 212 2.3.19 SelectedIndices属性——表示当前选的项 213 2.3.20 SelectedItem属性——当前选的项 214 2.3.21 SelectedItems属性——选定项的集合 215 2.3.22 SelectedText属性——选定文本 216 2.4 容器类控件 217 2.4.1 FlatStyle属性——设置控件的平面样式外观 217 2.4.2 FlowDirection属性——指示FlowLayoutPanel控件的流向 217 2.4.3 FlowLayoutPanel控件——水平或垂直排列内容 218 2.4.4 GroupBox控件——分组控件 219 2.4.5 Panel控件——容器控件 220 2.4.6 TabControl控件——选项卡控件 222 2.4.7 TabIndex属性——控件的Tab键顺序 224 2.4.8 TabPages属性——选项卡页的集合 224 第3章 Windows高级控件 226 3.1 日期时间类控件 226 3.1.1 CalendarFont属性——日历的字体样式 226 3.1.2 CalendarForeColor属性——日历的前景色 226 3.1.3 DateTimePicker控件——日期和日历的组合 226 3.1.4 MaxDate属性——最大日期和时间 228 3.1.5 MinDate属性——最小日期和时间 228 3.1.6 MonthCalendar控件——以网格形式显示日历 229 3.1.7 SetDate方法——将日期设置为当前选定的日期 231 3.1.8 ShowToday属性——是否显示当前日期 232 3.2 对话框、菜单、工具栏及状态栏控件 232 3.2.1 ColorDialog控件——颜色对话框 232 3.2.2 ContextMenuStrip控件——右键快捷菜单 233 3.2.3 ExpandAll方法——展开所有树节点 233 3.2.4 Filter属性——设置筛选器字符串 234 3.2.5 FolderBrowserDialog控件——浏览文件夹对话框 234 3.2.6 Font属性——设置字体 235 3.2.7 FontDialog控件——字体对话框 235 3.2.8 InitialDirectory属性——文件对话框显示的初始目录 237 3.2.9 MenuStrip控件——菜单控件 238 3.2.10 Nodes属性——树节点集合 241 3.2.11 OpenFileDialog控件——打开文件对话框 241 3.2.12 RestoreDirectory属性——是否还原当前目录 244 3.2.13 RootFolder属性——设置浏览的根文件夹 245 3.2.14 SaveFileDialog组件——保存文件对话框 246 3.2.15 SelectedNode属性——获取选定的树节点 248 3.2.16 SelectedPath属性——用户选定的路径 249 3.2.17 ShowDialog方法——打开模式对话框 249 3.2.18 ToolStrip控件——工具栏控件 251 3.2.19 TreeNode类——树节点 252 3.2.20 TreeView控件——树控件 254 3.3 数据绑定类控件 256 3.3.1 BindingNavigator控件——导航和操作数据 256 3.3.2 Cell对象——表示Word文档的单元格 258 3.3.3 CellClick事件——单元格的任何部分被单击时发生 259 3.3.4 CellEnter事件——控件接收到输入焦点时发生 260 3.3.5 CellMouseClick事件——鼠标单击单元格时发生 261 3.3.6 CellLeave事件——单元格失去输入焦点时发生 261 3.3.7 Cells属性——Bookmark控件的表单元格 261 3.3.8 ColumnCount属性——DataGridView控件显示的列数 262 3.3.9 Columns属性——控件所有列的集合 262 3.3.10 ColumnWidth属性——ListBox列的宽度 263 3.3.11 CurrentCell属性——设置当前处于活动状态的单元格 263 3.3.12 CurrentRow属性——包含当前单元格的行 263 3.3.13 DataGridView控件——数据控件 264 3.3.14 FullRowSelect属性——是否选择其所有子项 268 3.3.15 GetCellCount方法——获取满足筛选器的单元格数目 269 3.3.16 GetColumn方法——指定子控件的列位置 270 3.3.17 NewRow方法——添加一条新记录 270 3.3.18 RowCount方法——DataGridView显示的行数 271 3.3.19 Rows属性——DataGridView控件的所有行 272 3.4 打印类控件 273 3.4.1 CrystalReportViewer控件——水晶报表查看控件 273 3.4.2 Document属性——设置要预览的文档 280 3.4.3 PageSetupDialog组件——配置页面的对话框 281 3.4.4 Print方法——打印当前页面 283 3.4.5 PrintDialog组件——打印对话框 283 3.4.6 PrintDocument组件——设置打印的文档 286 3.4.7 PrinterSettings属性——打印机设置 291 3.4.8 PrintPage事件——当需要为当前页打印的输出时发生 292 3.4.9 PrintPreviewControl组件——按文档打印时的外观显示Print Document组件 292 3.4.10 PrintPreviewDialog组件——显示PrintDocument组件在打印时的外观 295 3.4.11 PrinterSettings类——用来指定有关文档打印方式的信息 297 3.4.12 Zoom属性——指示页面的显示大小 300 3.5 其他常用组件 300 3.5.1 BackgroundWorker组件——在主线程的另一线程上异步执行耗时的操作 300 3.5.2 ErrorProvider控件——检查并显示错误信息 302 3.5.3 EventLog组件——连接本地和远程计算机的事件日志 303 3.5.4 HelpProvider组件——将帮助文件与Windows应用程序相关联 306 3.5.5 HScrollBar控件——一个标准Windows水平滚动条 309 3.5.6 Image属性——显示在控件上的图像 311 3.5.7 ImageAlign属性——在控件显示的图像的对齐方式 312 3.5.8 ImageFormat类——指定图像的格式 312 3.5.9 ImageList组件——用于存储图像 314 3.5.10 ImageList属性——在控件显示的图像的ImageList 316 3.5.11 Interval属性——设置Timer控件执行的间隔 317 3.5.12 NotifyIcon控件——设置程序的系统托盘图标 317 3.5.13 PerformStep方法——按照Step属性的数量增加进度栏的当前位置 319 3.5.14 PictrueBox控件——用于显示指定的图像 320 3.5.15 Play方法——播放.wav文件 323 3.5.16 ProgressBar控件——进度条 323 3.5.17 SetError方法——设置错误信息 326 3.5.18 SetShowHelp方法——是否显示帮助信息 327 3.5.19 SetToolTip方法——设置提示文本 328 3.5.20 Step属性——增加进度条的当前位置时所根据的数量 328 3.5.21 Stop方法——停止加载网页 329 3.5.22 Tick事件——计时器处于启用状态时发生 330 3.5.23 Timer组件——定期引发事件的组件 330 3.5.24 ToolTip控件——显示提示信息 332 3.5.25 ToolTipIcon属性——提示文本旁显示的图标类型 333 3.5.26 ToolTipText属性——ToolTip显示的文本 334 3.5.27 ToolTipTitle属性——工具提示窗口的标题 334 3.5.28 TrackBar控件——标准的Windows跟踪条 335 3.5.29 Url属性——引用服务说明的URL 337 3.5.30 VscrollBar控件——标准的Windows垂直滚动条 337 3.5.31 WebBrowser控件——在窗体显示网页 339 3.5.32 Windows Media Player控件——播放常见的音频文件 343 第4章 控件公共属性、方法及事件 347 4.1 控件公共属性 347 4.1.1 BackColor属性——设置控件的背景色 347 4.1.2 BackgroudColor属性——设置控件背景色 347 4.1.3 BackgroudImage属性——设置控件背景图像 347 4.1.4 Border属性——控件边框 348 4.1.5 BorderStyle属性——控件的边框样式 349 4.1.6 Bottom属性——控件下边缘与其容器的工作区上边缘之间的距离 349 4.1.7 CanFocus属性——控件是否可以接收焦点 350 4.1.8 Capture属性——控件是否已捕获鼠标 350 4.1.9 Color属性——设置用户选定的颜色 350 4.1.10 Dock属性——控件在窗体的布局样式 351 4.1.11 Enabled属性——控件是否可用 352 4.1.12 ForeColor属性——设置控件的前景色 352 4.1.13 Handle属性——获取控件绑定到的窗口句柄 352 4.1.14 Height属性——设置控件的高度 353 4.1.15 KeyChar属性——设置与按下的键对应的字符 354 4.1.16 KeyValue属性——获取KeyDown或KeyUp事件的键盘值 355 4.1.17 Lines属性——设置多行配置的文本行 355 4.1.18 Location属性——控件的左上角相对于其容器的左上角的坐标 356 4.1.19 Name属性——控件或实例的名称 356 4.1.20 Parent属性——设置控件的父容器或获取指定子目录的父目录 357 4.1.21 Position属性——设置坐标 358 4.1.22 ReadOnly属性——是否只读 359 4.1.23 Right属性——控件右边缘与其容器的工作区左边缘之间的距离 359 4.1.24 RightToLeft属性——控件的文本从右向左读取 360 4.1.25 ScrollBars属性——滚动条的可见性和位置 360 4.1.26 SizeMode属性——指示如何显示图像 361 4.1.27 Tag属性——窗体或控件的标识 362 4.1.28 Text属性——与控件关联的文本 362 4.1.29 TextAlign 属性——控件上文本的对齐方式 363 4.1.30 Top属性——控件上边缘与其容器的工作区上边缘之间的距离 364 4.1.31 Value属性——辅助性对象的值 364 4.1.32 View属性——项在控件的显示方式 365 4.1.33 Visible属性——控件是否可见 366 4.1.34 Width属性——控件的宽度 366 4.2 控件公共方法 367 4.2.1 BringToFront方法——将控件带到Z顺序的前面 367 4.2.2 Focus方法——为控件设置输入焦点 367 4.2.3 GetClipboardContent方法——检索选定单元格内容的格式化值 368 4.2.4 GetParent方法——检索指定路径的父目录 368 4.2.5 Hide方法——隐藏窗体 369 4.2.6 Load方法——加载XML文档 369 4.2.7 LoadFile方法——将文件加载到RichTextBox控件 371 4.2.8 Navigate方法——打开指定的URL地址 372 4.2.9 Refresh方法——重新加载当前的网页 373 4.2.10 SaveAs方法——用新名称或新格式保存文档 373 4.2.11 SaveFile方法——将内容保存到文件 374 4.2.12 Show方法——显示光标或者打开新窗体 375 4.2.13 UpButton方法——按照指定数值递增 376 4.3 控件公共事件 377 4.3.1 Click事件——单击控件时触发该事件 377 4.3.2 Enter事件——光标进入控件时发生 378 4.3.3 KeyDown事件——控件有焦点按下键时发生 378 4.3.4 KeyPress事件——控件有焦点按下键时发生 380 4.3.5 KeyUp事件——控件有焦点释放键时发生 381 4.3.6 Leave事件——输入焦点离开控件时发生 381 4.3.7 MouseClick事件——用户单击控件时发生 382 4.3.8 Navigated事件——加载新文档时发生 383 4.3.9 Paint事件——重绘或更新控件时发生 383 第5章 数据库开发 385 5.1 SQL语言基础 385 5.1.1 AVG聚合函数——返回组值的平均值 385 5.1.2 CAST函数——数据类型显式转换 385 5.1.3 COUNT函数——返回组的项的数量 386 5.1.4 Last函数——返回查询结果的最后一个记录 386 5.1.5 MAX函数——返回表达式的最大值 388 5.1.6 MIN函数——返回表达式的最小值 388 5.1.7 newid函数——创建uniqueidentifier类型的惟一值 389 5.1.8 SUM函数——返回表达式所有值的和 389 5.1.9 UPDATE语句——更改表的现有数据 390 5.2 ADO.NET技术 392 5.2.1 Command对象——对数据源执行增、删、改、查操作 392 5.2.2 CommandText属性——获取设置SQL语句或存储过程 393 5.2.3 CommandTimeout属性——获取或设置错误等待时间 393 5.2.4 CommandType属性——获取或设置如何解释CommandText属性 394 5.2.5 Connection对象——数据库连接对象 394 5.2.6 ConnectionState枚举——数据库连接状态 395 5.2.7 DataAdapter类——数据库桥接器 396 5.2.8 DataMember属性——获取或设置数据源列表或表名称 398 5.2.9 DataReader类——只读数据集 398 5.2.10 DataSet类——数据集 400 5.2.11 DataSource属性——获取或设置数据源 402 5.2.12 ExecuteNonQuery方法——执行SQL语句并返回受影响的行数 402 5.2.13 ExecuteReader方法——执行SQL语句并返回DataReader对象 403 5.2.14 ExecuteScalar方法——执行SQL语句并返回结果集第1行的第1列 404 5.2.15 Fill方法——填充数据集 405 5.2.16 Merge方法——合并数据集 407 5.2.17 Parameters属性——获取SqlParameterCollection 409 5.2.18 ReadXml方法——将XML架构和数据读入数据集 410 5.2.19 SelectCommand属性——获取或设置选择记录命令 411 5.2.20 SQL注入式攻击——利用设计上的漏洞攻击SQL 412 5.2.21 SqlCommand类——SQL执行命令 413 5.2.22 SqlConnection类——SQL数据库连接对象 415 5.2.23 SqlDataAdapter类——SQL数据库桥接器 416 5.2.24 SqlDataReader类——SQL只读数据集 418 5.2.25 Tables属性——获取包含在数据集的表的集合 421 5.2.26 Update方法——使控件重绘工作区内的无效区域 422 5.2.27 UpdateCommand属性——获取或设置更新记录命令 423 5.2.28 WriteXml方法——将数据集数据写入到XML 423 5.3 LINQ技术 424 5.3.1 Lambda表达式——匿名函数 424 5.3.2 LINQ技术——语言集成查询 426 5.3.3 LinqToDataSet技术——LINQ操作数据集 427 5.3.4 LinqToObjects技术——LINQ操作数组和集合 429 5.3.5 LinqToSql技术——LINQ操作SQL数据库 431 5.3.6 LinqToXml技术——LINQ操作XML文件 436 5.3.7 var关键字——根据初始化语句推断变量类型 439 第6章 文件、数据流与注册表 441 6.1 文件与I/O数据流 441 6.1.1 ASCII码——键盘的一种表示方式 441 6.1.2 ASCIIEncoding类——ASCII字符编码的操作类 442 6.1.3 Attributes属性——获取和设置文件的属性 443 6.1.4 BinaryReader类——将特定的数据读作二进制值 445 6.1.5 BinaryWriter类——将二进制值写入到流 447 6.1.6 CanRead属性——判断当前流是否支持读写 448 6.1.7 Close方法——释放所有关联的资源 449 6.1.8 Copy方法——文件的复制 450 6.1.9 CopyFile方法——将文件复制到新的位置 451 6.1.10 CopyTo方法——将指定的字符串复制到字符数组 452 6.1.11 Create方法——创建文件 455 6.1.12 CreateDirectory方法——创建指定路径的所有目录 456 6.1.13 CreateText方法——创建或打开文本文件 456 6.1.14 CreationTime属性——获取或设置文件的创建时间 457 6.1.15 CryptoStream类——将数据流连接到加密转换的流 457 6.1.16 Delete方法——删除文件 461 6.1.17 Directory类——对文件夹进行操作的类 463 6.1.18 DirectoryEntry类——封装节点或对象 464 6.1.19 DirectoryInfo类——对文件夹进行操作的类 466 6.1.20 DirectoryName属性——获取路径 468 6.1.21 DirectorySearcher组件——执行查找 468 6.1.22 DriveInfo类——驱动器的信息访问 469 6.1.23 Encoding属性——获取编码方式 470 6.1.24 Exists方法——判断文件是否存在 471 6.1.25 Exists属性——判断文件是否存在 472 6.1.26 Extension属性——获取文件扩展名 473 6.1.27 File类——对文件进行操作的类 473 6.1.28 FileAttributes枚举——提供文件和目录的属性 475 6.1.29 FileInfo类——文件的操作类 476 6.1.30 FileName属性——获取或设置文件的名称 478 6.1.31 FileStream类——对文件流操作的类 478 6.1.32 Flush方法——清除流的缓冲区 480 6.1.33 GetBytes方法——将字符串编码设为字节序列 481 6.1.34 GetDirectories方法——获取子目录的名称 482 6.1.35 GetExtension方法——获取路径字符串的扩展名 485 6.1.36 GetFiles方法——获取目录的文件名称 486 6.1.37 GetFileSystemEntries方法——获取目录的所有名称 487 6.1.38 GetFileSystemInfos方法——获取所有文件的信息 489 6.1.39 GetStream方法——返回用于发送和接收的数据 491 6.1.40 GetString方法——将字节解码成字符串 491 6.1.41 HasRows属性——指示 OleDbDataReader是否有数据 493 6.1.42 MD5CryptoServiceProvider类——操作MD5的类 493 6.1.43 MemoryStream类——创建其支持存储区为内存的流 495 6.1.44 Move方法——文件的移动 497 6.1.45 MoveNext方法——移动到下一个字符 497 6.1.46 MoveTo方法——文件的移动 498 6.1.47 NetworkStream类——网络访问的基础数据流 500 6.1.48 Open方法——打开文件 502 6.1.49 OpenFile方法——以只读方式打开文件 503 6.1.50 OpenText方法——打开UTF-8编码文本文件 504 6.1.51 Path属性——监视的目录的路径 505 6.1.52 Peek方法——返回下一个可用的字符 506 6.1.53 Read方法——读取数据流 507 6.1.54 ReadBytes方法——将指定的字节读入字节数组 508 6.1.55 ReadToEnd方法——从流的当前位置读到末尾 509 6.1.56 Stream类——对数据流进行操作的类 510 6.1.57 StreamReader类——数据流的读取类 512 6.1.58 StreamWriter类——数据流的写入类 513 6.1.59 TextReader类——读取连续字符的读取器 515 6.1.60 TextWriter类——编写一个有序字符系列的编写器 516 6.1.61 Write方法——将流写入到文件 517 6.2 注册表技术 521 6.2.1 CreateSubKey方法——创建或打开子项 521 6.2.2 GetValue方法——获取注册表项的值 522 6.2.3 GetValueNames方法——所有值名称的字符串数组 523 6.2.4 GetSubKeyNames方法——所有子项名称字符串数组 525 6.2.5 OpenSubKey方法——以只读方式检索子项 525 6.2.6 Registry类——注册表操作类 528 6.2.7 RegistryKey类——表示Windows注册表的项级节点 529 6.2.8 SetValue方法——设置注册表项的指定名称/值对 531 第7章 GDI+绘图技术 532 7.1 GDI+绘图基础 532 7.1.1 Bitmap类——图像对象 532 7.1.2 Cursor类——绘制光标指针图像 533 7.1.3 GDI+——图形图像的绘制 535 7.1.4 Graphics类——绘图类 536 7.1.5 GraphicsPath类——一系列相互连接的直线和曲线 540 7.1.6 Icon类——图标的操作类 542 7.1.7 Image类——图像的操作类 543 7.1.8 LinearGradientBrush类——线性渐变封装Brush 545 7.1.9 Region类——由矩形和路径构成的图形形状的内部 547 7.1.10 SolidBrush类——定义单色画笔 548 7.2 常用绘图方法 549 7.2.1 Draw方法——绘制光标 549 7.2.2 DrawArc方法——绘制圆弧 550 7.2.3 DrawBezier方法——绘制贝塞尔样条 551 7.2.4 DrawEllipse方法——绘制椭圆 553 7.2.5 DrawImage方法——绘制Image图像 555 7.2.6 DrawLine方法——绘制直线 556 7.2.7 DrawPath方法——绘制GraphicsPath图形路径 558 7.2.8 DrawPie方法——绘制扇形 558 7.2.9 DrawPolygon方法——绘制多边形 560 7.2.10 DrawRectangle方法——绘制矩形 561 7.2.11 DrawString方法——绘制文本字符串 562 7.3 常用填充图像方法 565 7.3.1 FillEllipse方法——填充椭圆 565 7.3.2 FillPath方法——填充GraphicsPath的内部 566 7.3.3 FillPie方法——填充扇形 567 7.3.4 FillPolygon方法——填充多边形 568 7.3.5 FillRectangle方法——填充矩形框 570 7.3.6 FillRegion方法——填充一个区域 572 7.4 其他常用方法 572 7.4.1 Clone方法——创建Bitmap对象的某个部分的副本 572 7.4.2 CreateGraphics方法——创建Graphics对象 574 7.4.3 FromArgb方法——从ARGB值创建Color结构 574 7.4.4 FromFile方法——从指定的文件创建Image 577 7.4.5 FromImage方法——从Image创建新的Graphics对象 578 7.4.6 FromStream方法——数据流创建Image 578 7.4.7 GetPixel方法——获取图像的像素颜色 580 7.4.8 GetThumbnailImage方法——Image的缩略图 581 7.4.9 Save方法——将图片以文件的形式进行复制 583 7.4.10 SetPixel方法——设置图像的像素颜色 583 7.4.11 Transform方法——对路径的数据点进行变换 584 第8章 C#高级编程 586 8.1 网络编程技术 586 8.1.1 Accept方法——为新建连接创建新的Socket对象 586 8.1.2 AcceptSocket方法——接收挂起的连接请求 586 8.1.3 BeginConnect方法——开始远程主机连接的异步请求 587 8.1.4 Dns类——从Internet域名系统检索特定主机的信息 588 8.1.5 GetHostAddresses方法——返回主机的IP地址 589 8.1.6 GetHostByAddress方法——创建IPHostEntry实例 590 8.1.7 GetHostByName方法——获取指定DNS主机名的信息 591 8.1.8 GetHostName方法——获取本地计算机的主机名 592 8.1.9 IPEndPoint类——将网络端点表示为IP地址和端口号 592 8.1.10 IPHostEntry类——为主机地址信息提供容器类 594 8.1.11 Listen方法——将Socket置于侦听状态 596 8.1.12 MachineName属性——读取或写入事件的计算机名称 596 8.1.13 MailMessage类——邮件的操作类 597 8.1.14 Net send命令——用net send命令进行发送 598 8.1.15 Net use命令——实现映射网络驱动器 599 8.1.16 Ping类——网络访问远程计算机的操作类 601 8.1.17 POP3协议——POP邮件的操作类 603 8.1.18 Receive方法——由远程主机发送的UDP数据报 608 8.1.19 Send方法——将数据发送到连接的Socket 609 8.1.20 SerialPort类——控制串行端口文件资源 610 8.1.21 SMTP协议——进行邮件的传输 612 8.1.22 SmtpClient类——将电子邮件发送到SMTP服务器 614 8.1.23 Socket类——网络通信的操作类 616 8.1.24 TcpClient类——为TCP网络服务提供客户端连接 618 8.1.25 TcpListener类——从TCP网络客户端侦听连接 619 8.1.26 UdpClient类——用户数据报(UDP)网络服务 620 8.1.27 WebClient类——URI标识的资源发送和接收 623 8.1.28 WebRequest类——访问Internet数据 625 8.1.29 WebResponse类——协议特定的响应类 629 8.2 多线程编程 630 8.2.1 Abort方法——终止线程 630 8.2.2 BeginInvoke方法——线程上异步执行委托 631 8.2.3 EndInvoke方法——异步操作的返回值 632 8.2.4 Join方法——确保线程已终止 633 8.2.5 Kill方法——强制关闭进程 633 8.2.6 Process类——对正在计算机上运行的进程的访问 635 8.2.7 Sleep方法——线程挂起 640 8.2.8 Start方法——启动进程 640 8.2.9 Thread类——创建并控制线程的类 642 8.2.10 ThreadState属性——获取当前线程的状态 645 8.3 WMI技术——系统管理 646 8.3.1 MainWindowTitle属性——获取进程的主窗口标题 646 8.3.2 ManagementClass类——公共信息模型管理类 647 8.3.3 ManagementObject类——表示WMI实例 648 8.3.4 ManagementObjectSearcher类——查询检索管理对象 650 8.3.5 ManagementScope类——管理操作的范围 651 8.3.6 Microsoft.Win32命名空间——操作注册表类 652 8.3.7 WndProc方法——处理Windows消息 654 8.4 其他高级技术 655 8.4.1 Children属性——获取节点的子项 655 8.4.2 COM+服务——为类的实例提供服务 655 8.4.3 DirectShow技术——流媒体处理的一个开发包 656 8.4.4 DLL组件——动态链接库 663 8.4.5 MVC开发模式——模型视图控制器 664 8.4.6 VFW技术——视频应用程序提供的软件工具包 666 8.4.7 XML——定义其他标识语言的元标识语言 668 8.4.8 XmlReader类——XML读取器 670 8.4.9 XmlWriter类——XML编写器 673 附录——字母索引 676
尹成Python27天从入门到实战项目!全课665节讲解详细易操作,助力实战项目能力成长,轻松、简单、易懂!day1  python入门与学习方法精确思维与用到才能记忆深刻课程简介课前介绍计算机简介与硬盘概念内存作用计算机小结编程语言简介操作系统简介python版本简介切换python版本修改环境变量交互式编程两种风格python3代码保存必须是utf-8使用IDE了解注释段落打印三引号注释多行三个单引号python代码要严格对齐文输入字符错误简单数学表达式代码风格三种错误风格系统执行指令运行结果乱码交互式编程绘图绘制线段与圆形改变颜色绘制奥运五环小结习题day1plus python  常量变量数据类型 常量与变量区别标识符关键字输入输出id求地址type求类型python变量是地址赋值可以改变类型python主要数据类型复数数据类型自适应变长整数intdel作用连续赋值交互对称赋值字符串转化与输入输出编程wmv多行拆分多行归并成一行规范用的常量算术运算符科学计数法与数字越界优先级结合性赋值运算符数据类型转换四舍五入数据提取时间处理作业day2   python字符串与绘图复习变量None变量参与运算没有赋值的情况不会改变绘制立方体绘制五角星时间计算强化实现贷款计算连续输入多个字符串加法与绘图实现显示线段长度数据函数使用快速查阅函数帮助字符串三种风格字符与编号文字符编号问题字符编号用途统一码转义字符意义转义字符用于字符串print高级用法字符串加法与转换字符串小结python所有的数据都是对象字符串格式化了解进制图形绘制重点作业以及学习认知方法day3   python运算符与ifelse逻辑语句第一天上午回顾第二天下午回顾1第二天回顾2.7习题解答2.11习题解答2.26作业KaliLinux简介3.4实现五边形面积计算3.7随机字符生成3.8实数误差与四舍五入3.18解答与特殊字符if简介与空格的作用if处理的是逻辑表达式关系运算符针对数值字符串的关系运算符if自动转化Bool类型随机数if缺点且运算符或运算符取反运算符短路效应身份运算符运算符优先级结合性概览pass语句潜台词翻译系统None用途指令翻译系统嵌套嵌套与elif对比以及注意细节习题解答绘图作业与重点day4  语音合成与逻辑循环回顾语音合成简单理解while控制次数WhileElseWhileElse实战whileFloat回顾与ifelse表达式赌博概率分类设计方法-一元二次方程嵌套求有序3个数闰年计算矩形区域随机数ifelse回文数判断10进制转化16进制16进制转十进制暴力穷举无限循环指令循环同步异步黑科技读写内存读写内存无限循环监测重点与作业day5  复杂逻辑循环while与whileelse编程风格循环控制图形绘制while猜数字输入输出重定向while习题分析可以退出的命令系统for初步简介跑分流程结合for循环小结forfor嵌套forfor分析break断循环contiune结束本次循环双层循环的break与continue分析break与contiue小结一闪一闪亮晶晶循环控制大小与位置对角线绘制圆形口顺时针运动循环等价作业与小结day6  函数实战回顾.算学费输入数据求最大精确划分思维解决最大次大交换数据实现按行显示围棋棋盘绘制国际象棋绘制为什么要用函数函数的四种类型函数的一般形式必须用函数的理由-哥德巴赫函数的本质就是地址函数变量意义函数变量用途装饰器设计模式包含模式函数概念None函数默认参数与返回值作为参数名称参数与位置参数参数副本机制副本练习多个返回值全局变量与局部变量函数内部引用全局变量函数可以嵌套nolocal处理函数嵌套变量函数nonlocalnonlocal总结开房数据查询day7      函数实战与常用数据结构函数的两种类型函数的本质再分析函数地址切换切换功能ifelse配合地址筛选函数收费函数调用过程函数基本小结return小结位置参数与默认参数混合参数填充混合填充错误情况lambda匿名函数可变长函数字符串常识普及字符串特点字符串不可以修改内部字符list列表list用途tuple简介集合运算字典概念in与notin运算符构造表达式转换数据类型系统小结拓展查询作业day8   字符串实战简单回顾eval与exec简介字符串的简单规范字符串的截取字符串赋值规范字符串转义字符字符串常见运算符字符串格式化字符串格式化强化字符串编码简介dir与help查看str字符串函数第一个大写以及字符串居显示打印金字塔count统计字符串出现个数字符串编码注意事项解码失败判断字符串以什么为结束tab键转换find函数与rfind函数day9   字符串高级简单回顾..eval与exec简介字符串的简单规范字符串的截取字符串赋值规范字符串转义字符字符串常见运算符字符串格式化字符串格式化强化字符串编码简介dir与help查看str字符串函数第一个大写以及字符串居显示打印金字塔count统计字符串出现个数字符串编码注意事项解码失败判断字符串以什么为结束tab键转换find函数与rfind函数index函数与rindex函数字符串判断字符串间隔求长度以及左右填充字符串大小写取出最大最小字符替换去除空格简单切割换行切割判断开头大小写切换以及填充0翻译表.字符串模板小结day10  字符串集合与语音识别实战回顾lset初始化风格set增加与去重set删除元素遍历set类型转化set无法操作单个元素的赋值set常见方法set常见运算符set关系运算符判断包含set集合判断frozenset字典的基本定义循环字典判断在不在实现插入与更新字典删除字典详解字典与set无法嵌套迭代器列表生成式生成器生成器节省内存用于循环生成器yield作用生成器简介测试游戏简介游戏初级修改键盘模拟语音控制游戏实现鼠标模拟代码规范函数简化重用列表与元组小结作业day11  阶段综合练习昨日回顾.堆栈函数模块引用系统模块引用与错误列表生成式的若干方法生成矩阵str与reprpython把输入输出设备当作文件处理写入文写入英文读取文读取英文读取错误写入错误处理文件缓存区文件读取若干种方式for循环按行读取数据文件指针seektell数据结构与文件的交互数据查询并保存结果数据查询小结与数据day12downwithoutdata  数据处理开发大数据指令数据清洗的概念初级数据清洗密码排序次数统计QQ密码概率分布QQ号码分类器.开房数据清洗..区域划分省份划分年龄月份划分日划分day12up  数据实战简单回顾12系统默认编码文编码常见错误字符串切割抓取邮箱抓取用户名与密码排序密码文件统计次数排序.统计文件密码次数密码次数排序day13withoutdata  数据分类与list深入地区分类详解字典分类器数据简单归并数据如何切割数据加密数据解密指令执行判断文件夹编程小结列表归并-删除列表归并-下标小结与作业day14down   面向对象编程与深浅拷贝面向对象与过程的差异self用途动态绑定增加属性方法重载运算符的概念有名对象与匿名对象重载运算符的返回值重载运算符多个类型类的拷贝是浅复制深浅拷贝函数调用参数副本原理函数调用可以改变list的元素不可以改变list指向对象当作参数的细节私有变量私有变量用于设计权限私有方法用于设计权限私有变量本质用类的方式读取文件行数密码次数归并数据处理方法简介今日小结作业wmvday14up  暴力穷举与类回顾....排列组合暴力生成穷举密码密码破解必破生成器密码破解小结为啥使用类-代码重用类的一般形式详解self构造函数与析构函数构造函数初始化类的属性最简洁的UI设定窗体的位置以及大小类的实际用途day15down  面向对象数据搜索实战输入处理文本编辑器表格数据树状显示数据搜索可视化第一步实现查询窗体数据搜索可视化第二步实现搜索数据数据搜索可视化第三步实现显示窗体数据可视化第四步显示与搜索串联数据可视化终结作业小结day15up  面向对象设计与图像界面上设计一个类发短信类的方法设计一下短信发送邮件类的设计-设计发邮件类的多文件引用腾讯营销类的设计消息循环消息回掉函数机制lambda按下按钮标签显示文本文本输入框listcombobox选择列表day16up  面向对象与图形界面开发下设计一个类发短信类的方法设计一下短信发送邮件类的设计-设计发邮件类的多文件引用腾讯营销类的设计消息循环消息回掉函数机制lambda按下按钮标签显示文本文本输入框listcombobox选择列表day17  面向对象继承实战昨日小结.,.继承的概念多继承的概念多继承的覆盖私有变量不可以被继承Object类类的常见属性super解决父类重复初始化isinstance多态静态方法类方法数据工具1类的继承数据工具实现小结day18down  正则表达式正则表达式bB贪婪与非贪婪标签.标签解决提取标签名称提取QQ生成邮箱列表工具简单正则表达式编写常见的正则表达式复杂正则表达式编写复杂表达式代码验证作业与小结day18up 正则表达式实践为什么使用正则表达式正则表达式匹配.预编译的概念搜索技能搜索用在找出第一个邮箱手机提取findall字符串切割筛选正则表达式正则表达式替换单个字符判断括号选择一个字符正则表达式次数正则开头结尾括号与选择正则表达式特殊符号day19down 递归与爬虫实战函数递归模拟文件树文件树事件读取网页抓取邮箱抓取QQ提取http抓取邮箱简单程序框架实现抓取邮箱的框架核心两个函数完成广度遍历深度遍历作.业day19up 深度遍历与广度遍历正则表达式小结最简单递归递归顺序递归求和递归腾讯台阶面试题文件夹的函数遍历文件夹遍历文件夹有层次感栈模拟递归栈模拟递归遍历文件夹栈模拟递归遍历文件夹层次感普及网站提取概念栈修改的逻辑错误广度遍历 day20 正则 爬虫实战行情简介提取页面信息提取股票代码提取股票代码下载功能下载股票批量下载股票抓取1页的股票数据抓取多个页面的股票抓取基金信息作业day21  网络编程与信息安全网络概念UDP协议UDP通信UDP远程控制TCP通信TCP控制测试网站后台网站密码破解作业 day22down  线程通信线程通信线程通信强化线程condition高级线程调度生产者消费者线程池延时线程with作用前台进程后台进程TLS线程独立存储作业day22up  多线程实战多线程核心目标并发主线程与小弟线程多线程解决加速多线程的加速线程冲突基于类实现多线程基于类实现多线程的顺序与乱序互斥锁解决线程冲突死锁-使用锁要注意Rlock解决一个线程反复加锁单线程死锁创建线程的三种风格信号量限制线程数量限定线程数量day23  多进程实战多线程回顾多进程拷贝代码多进程拷贝全局变量获取进程编号subprocess执行LinuxShell信号Linux进程小结__name__进程mutiprocessing创建过程join作用进程不可以用全局变量共享数据进程同步进程pipe发送接收数据进程队列进程队列传输数据进程共享数据进程之间共享数组进程共享字典与list简单小结day23down  多进程多线程综合实战读取CSV写入csv单线程统计行数多线程统计行数多进程统计行数多线程检索数据第一步多线程检索赵琳多线程检索找到通知其他人退出多线程检索开放数据并保存同一个文件作业day24up  多进程多线程综合实战多进程检索第一步多进程检索开房数据求平均市值多线程解决平均市值多进程统计平均市值单线程BFS抓取邮箱多线程并行抓取邮箱多线程采集邮箱并保存csv归并多线程归并文件day25down 文件格式处理doc处理系统处理doc与docx文件处理的小结读取并写入xls与xlsx读取网络pdf文pdftelnet简介登陆Linux登陆Windows小结day25up  时间编程与单元测试时间的简单风格时间格式化抓取年月日计算时间差时间函数计算时间差date小结python2与3的差异内置函数筛选内置函数map内置的函数sorted新浪数据抓取实时文档测试单元测试函数单元测试一个类day26  综合实战播放音乐设置背景鬼程序协程简介协程传递数据wmv协程编号协程生产者消费者模式office自动化操作wordoffice办公自动化操作exceloffice办公自动化操作outlookoffice办公自动化access开发环境配置访问mdb格式访问accdb格式实现CGI程序显示页面环境变量cgi处理前后端day26down  破解wifi实战扫描wifi扫描网卡区分链接成功或者失败wifi密码爆破工具设计Linux破解简介day27down  飞机大战实战命令行下脱裤创建一个pygame窗体窗体加载背景图片处理消息飞机移动实现基本框架飞机框架飞机销毁双机对战双机对战加载子弹双机与敌机出现发射子弹day27up  数据库实战jython的安装MySQL简介数据库的一般操作MySQL数据类型数据表的创建于删除数据的查询数据的插入数据的删除数据的更新联合查询字段一致数据查询排序排序与分组join与nullmysql用python编程查询数据python数据库增删查改项目简介other  异常与错误综合练习异常与错误的概念作业tryexcept解决异常不出错继续执行密码破解工具进攻数据库爆破mysql异常else异常处理的标准公式弹出异常withas类使用异常继承自定义异常断言密码工具设计三个独立的类密码工具2类链接3类密码工具1类链接3类密码工具分析作业speech   语音识别问题解决语音识别解决None
第1章 WPF概述 1 1.1 理解Windows图形 1 1.1.1 DirectX:新的图形引擎 1 1.1.2 硬件加速与WPF 2 1.2 WPF:高级API 4 1.2.1 分辨率无关性 5 1.2.2 WPF的演化 9 1.2.3 Windows窗体将继续保留 11 1.2.4 DirectX也将继续保留 12 1.2.5 Silverlight 12 1.3 WPF体系结构 13 1.4 结束语 17 第2章 XAML 19 2.1 理解XAML 20 2.1.1 WPF之前的图形用户界面 20 2.1.2 XAML变体 21 2.1.3 XAML编译 22 2.2 XAML基础 22 2.2.1 XAML名称空间 23 2.2.2 后台代码类 24 2.3 XAML的属性和事件 26 2.3.1 简单属性与类型转换器 27 2.3.2 复杂属性 29 2.3.3 标记扩展 30 2.3.4 附加属性 31 2.3.5 嵌套元素 32 2.3.6 特殊字符与空白字符 35 2.3.7 事件 36 2.3.8 完整的Eight Ball示例程序 38 2.4 使用其他名称空间的类型 38 2.5 加载和编译XAML 40 2.5.1 只使用代码 41 2.5.2 使用代码和未编译的XAML 43 2.5.3 使用代码和编译过的XAML 44 2.5.4 只使用XAML 46 2.6 结束语 47 第3章 Application类 48 3.1 应用程序的生命周期 48 3.1.1 创建Application对象 48 3.1.2 派生一个自定义的 Application类 49 3.1.3 应用程序的关闭方式 51 3.1.4 应用程序事件 51 3.2 Application类的任务 53 3.2.1 处理命令行参数 54 3.2.2 访问当前Application对象 55 3.2.3 在窗口之间进行交互 56 3.2.4 单实例应用程序 57 3.3 结束语 63 第4章 布局 64 4.1 理解WPF的布局 64 4.1.1 WPF布局原则 65 4.1.2 布局过程 66 4.1.3 布局包容器 66 4.2 使用StackPanel面板 进行简单布局 68 4.2.1 布局属性 69 4.2.2 对齐方式 70 4.2.3 外边距 71 4.2.4 最小尺寸、最大尺寸以及 显式地设置尺寸 72 4.3 WrapPanel面板和DockPanel 面板 74 4.3.1 WrapPanel面板 74 4.3.2 DockPanel面板 75 4.3.3 嵌套布局包容器 77 4.4 Grid面板 78 4.4.1 调整行和列 80 4.4.2 跨越行和列 82 4.4.3 分割窗口 83 4.4.4 共享尺寸组 86 4.4.5 UniformGrid面板 88 4.5 使用Canvas面板进行 基于坐标的布局 89 4.5.1 Z顺序 90 4.5.2 lnkCanvas元素 91 4.6 布局示例 93 4.6.1 列设置 93 4.6.2 动态内容 94 4.6.3 组合式用户界面 96 4.7 结束语 97 第5章 内容 99 5.1 理解内容控件 99 5.1.1 Content属性 101 5.1.2 对齐内容 102 5.1.3 WPF内容原则 103 5.2 特殊包容器控件 104 5.2.1 ScrollViewer包容器控件 104 5.2.2 GroupBox和TabItem: 带标题的内容控件 107 5.2.3 Expander控件 109 5.3 装饰控件 112 5.3.1 Border控件 112 5.3.2 Viewbox控件 113 5.4 结束语 115 第6章 依赖项属性和路由事件 116 6.1 理解依赖项属性 116 6.1.1 定义和注册依赖项属性 117 6.1.2 WPF使用依赖项属性的方式 124 6.2 理解路由事件 126 6.2.1 定义和注册路由事件 126 6.2.2 关联事件处理程序 128 6.2.3 事件路由 129 6.3 WPF事件 137 6.3.1 生命周期事件 137 6.3.2 输入事件 139 6.3.3 键盘输入 140 6.3.4 鼠标输入 145 6.4 结束语 149 第7章 经典控件 151 7.1 控件类 151 7.1.1 背景画刷和前景画刷 151 7.1.2 字体 155 7.1.3 鼠标光标 159 7.2 内容控件 160 7.2.1 标签 160 7.2.2 按钮 161 7.2.3 工具提示 164 7.3 文本控件 170 7.3.1 多行文本 171 7.3.2 选择文本 172 7.3.3 TextBox控件的其他特征 172 7.3.4 PasswordBox控件 173 7.4 列表控件 174 7.4.1 ListBox控件 174 7.4.2 ComboBox控件 177 7.5 基于范围的控件 178 7.5.1 Slider控件 178 7.5.2 进度条 179 7.6 结束语 180 第8章 窗口 181 8.1 Window类 181 8.1.1 显示窗口 183 8.1.2 定位窗口 184 8.1.3 保存和恢复窗口位置 185 8.2 窗口交互 187 8.2.1 窗口所有权 188 8.2.2 对话框模型 189 8.2.3 通用对话框 190 8.3 非矩形窗口 191 8.3.1 简单形状窗口 191 8.3.2 具有形状内容的透明窗口 194 8.3.3 移动任意形状窗口 195 8.3.4 改变任意形状窗口的尺寸 196 8.4 Vista风格的窗口 197 8.4.1 使用Windows Vista玻璃效果 198 8.4.2 任务对话框和文件对话框 202 8.5 结束语 204 第9章 页面和导航 205 9.1 理解基于页面的导航 205 9.2 基于页面的用户界面 206 9.2.1 一个具有导航功能的基于 页面的简单应用程序 206 9.2.2 Page类 208 9.2.3 超链接 209 9.2.4 在一个框架宿主页面 211 9.2.5 在另外一个页面宿主页面 212 9.2.6 在Web浏览器宿主页面 213 9.3 页面历史 214 9.3.1 深入分析WPF的URI 214 9.3.2 导航历史 215 9.3.3 维护自定义的属性 216 9.4 导航服务 217 9.4.1 通过编程进行导航 217 9.4.2 导航事件 218 9.4.3 管理日志 219 9.4.4 向日志添加自定义项 221 9.4.5 页函数 225 9.5 XAML浏览器应用程序 227 9.5.1 XBAP应用程序的运行要求 228 9.5.2 创建XBAP应用程序 229 9.5.3 部署XBAP应用程序 230 9.5.4 更新XBAP应用程序 231 9.5.5 XBAP应用程序的安全性 232 9.5.6 完全信任的XBAP应用程序 233 9.5.7 联合XBAP应用程序和 标准的单机应用程序 234 9.5.8 为不同的安全级别编写代码 234 9.5.9 在Web页面嵌入XBAP 应用程序 239 9.6 结束语 240 第10章 命令 241 10.1 理解命令 241 10.2 WPF命令模型 243 10.2.1 ICommand接口 243 10.2.2 RoutedCommand类 244 10.2.3 RoutedUICommand类 245 10.2.4 命令库 245 10.3 执行命令 246 10.3.1 命令源 246 10.3.2 命令绑定 247 10.3.3 使用多命令源 249 10.3.4 微调命令文本 250 10.3.5 直接调用命令 251 10.3.6 禁用命令 252 10.3.7 具有内置命令的控件 253 10.4 高级命令 255 10.4.1 自定义命令 255 10.4.2 在不同的位置使用 相同的命令 257 10.4.3 使用命令参数 259 10.4.4 跟踪和翻转命令 259 10.5 结束语 263 第11章 资源 264 11.1 程序集资源 264 11.1.1 添加资源 264 11.1.2 检索资源 266 11.1.3 pack URI 267 11.1.4 内容文件 268 11.2 本地化 269 11.2.1 构建本地化用户界面 269 11.2.2 使应用程序为本地化 做好准备 270 11.2.3 翻译过程 271 11.3 对象资源 276 11.3.1 资源集合 276 11.3.2 资源层次 277 11.3.3 静态资源和动态资源 279 11.3.4 非共享资源 280 11.3.5 通过代码访问资源 280 11.3.6 应用程序资源 281 11.3.7 系统资源 281 11.3.8 使用资源字典组织资源 283 11.3.9 在程序集之间共享资源 284 11.4 结束语 287 第12章 样式 288 12.1 样式基础 288 12.1.1 创建样式对象 291 12.1.2 设置属性 292 12.1.3 关联事件处理程序 293 12.1.4 多层样式 294 12.1.5 通过类型自动应用样式 296 12.2 触发器 297 12.2.1 简单触发器 297 12.2.2 事件触发器 299 12.3 结束语 301 第13章 形状、变换和画刷 302 13.1 理解形状 302 13.1.1 Shape类 303 13.1.2 矩形和椭圆 304 13.1.3 改变形状的尺寸和 放置形状 305 13.1.4 直线 309 13.1.5 折线 310 13.1.6 多边形 311 13.1.7 直线线帽和直线交点 313 13.1.8 点划线 314 13.1.9 像素对齐 315 13.2 变换 316 13.2.1 变换形状 317 13.2.2 变换元素 318 13.3 更好的画刷 319 13.3.1 LinearGradientBrush画刷 320 13.3.2 RadialGradientBrush画刷 322 13.3.3 ImageBrush画刷 323 13.3.4 平铺的ImageBrush画刷 325 13.3.5 VisualBrush画刷 327 13.3.6 透明掩码 328 13.4 位图效果 330 13.4.1 模糊效果 331 13.4.2 斜面边缘效果 331 13.4.3 浮雕边缘效果 332 13.4.4 光环和阴影 332 13.5 结束语 334 第14章 图形、图画和可视化对象 335 14.1 路径和图形 335 14.1.1 直线、矩形和椭圆图形 336 14.1.2 使用GeometryGroup 组合形状 337 14.1.3 使用CombinedGeometry 融合图形 339 14.1.4 使用PathGeometry绘制曲线 和直线 341 14.1.5 微语言图形 345 14.1.6 使用图形进行剪裁 347 14.2 图画 348 14.2.1 显示图画 350 14.2.2 导出插图 352 14.3 可视化对象 353 14.3.1 绘制可视化对象 354 14.3.2 在元素包装可视化对象 355 14.3.3 命测试 358 14.3.4 复杂的命测试 360 14.4 结束语 363 第15章 控件模板 364 15.1 理解逻辑树和可视化树 364 15.2 理解模板 369 15.2.1 修饰类 371 15.2.2 剖析控件 372 15.3 创建控件模板 375 15.3.1 简单按钮模板 375 15.3.2 模板绑定 376 15.3.3 模板触发器 378 15.4 组织模板资源 380 15.4.1 分解按钮控件的模板 381 15.4.2 通过样式应用模板 383 15.4.3 自动应用模板 384 15.4.4 由用户选择的皮肤 385 15.5 构建更复杂的模板 387 15.5.1 多部分模板 387 15.5.2 ItemsControl控件的 控件模板 388 15.5.3 修改滚动条 390 15.5.4 创建自定义窗口 394 15.5.5 SimpleStyle示例项目 398 15.6 结束语 400 第16章 数据绑定 401 16.1 数据绑定基础 401 16.1.1 绑定到元素的属性 401 16.1.2 使用代码创建绑定 404 16.1.3 多绑定 405 16.1.4 绑定方向 408 16.1.5 绑定更新 410 16.1.6 绑定到非元素对象 411 16.2 使用自定义对象绑定 到数据库 414 16.2.1 构建数据访问组件 414 16.2.2 构建数据对象 417 16.2.3 显示绑定对象 418 16.2.4 更新数据库 419 16.2.5 更改通知 420 16.3 绑定到对象集合 422 16.3.1 显示和编辑集合元素 422 16.3.2 插入和移除集合元素 425 16.3.3 绑定到ADO.NET对象 426 16.3.4 绑定到LINQ表达式 428 16.4 数据转换 430 16.4.1 使用值转换器格式化 字符串 431 16.4.2 使用值转换器创建对象 434 16.4.3 应用条件格式化 436 16.4.4 评估多个属性 438 16.5 验证 439 16.5.1 在数据对象进行验证 439 16.5.2 自定义验证规则 443 16.5.3 响应验证错误 445 16.5.4 获取异常列表 445 16.5.5 显示不同的错误指示符号 446 16.6 结束语 449 第17章 数据模板、数据视图 和数据提供者 451 17.1 数据绑定回顾 451 17.2 数据模板 452 17.2.1 分离和重用模板 454 17.2.2 更高级的模板 455 17.2.3 改变模板 457 17.2.4 模板选择器 458 17.2.5 模板与选择 462 17.2.6 样式选择器 466 17.2.7 改变元素布局 468 17.3 数据视图 469 17.3.1 检索视图对象 470 17.3.2 过滤集合 470 17.3.3 过滤DataTable对象 473 17.3.4 排序 474 17.3.5 分组 475 17.3.6 声明式地创建视图 478 17.3.7 视图导航 480 17.4 数据提供者 483 17.4.1 ObjectDataProvider 484 17.4.2 XmlDataProvider 486 17.5 结束语 488 第18章 列表、树、工具条和菜单 489 18.1 ItemsControl类 489 18.1.1 ComboBox控件 492 18.1.2 包含复选框或单选 按钮的ListBox控件 495 18.2 ListView控件 497 18.2.1 使用GirdView视图创建列 499 18.2.2 改变列的尺寸 500 18.2.3 单元格模板 500 18.2.4 创建自定义视图 503 18.3 TreeView控件 510 18.3.1 使用数据绑定的TreeView 控件 511 18.3.2 将DataSet对象绑定 到树视图 514 18.3.3 即时节点创建 515 18.4 菜单 518 18.4.1 Menu类 518 18.4.2 菜单项 519 18.4.3 ContextMenu类 520 18.4.4 菜单分隔条 521 18.5 工具条和状态栏 522 18.5.1 ToolBar控件 522 18.5.2 StatusBar控件 525 18.6 结束语 526 第19章 文档 527 19.1 理解文档 527 19.2 流文档 528 19.2.1 流内容元素 529 19.2.2 格式化流内容元素 530 19.2.3 创建简单的流文档 532 19.2.4 块级别元素 533 19.2.5 内联级别元素 538 19.2.6 通过代码与元素进行交互 543 19.2.7 调整文本 547 19.3 只读流文档包容器 548 19.3.1 缩放 549 19.3.2 页面和列 549 19.3.3 从文件加载文档 552 19.3.4 打印 552 19.4 编辑流文档 553 19.4.1 加载文件 553 19.4.2 保存文件 555 19.4.3 格式化选择的文本 556 19.4.4 获取单个单词 558 19.5 固定文档 559 19.6 批注 561 19.6.1 批注类 562 19.6.2 启用批注服务 562 19.6.3 创建批注 563 19.6.4 检查批注 567 19.6.5 响应批注更改 569 19.6.6 在固定文档保存批注 570 19.6.7 自定义便笺外观 571 19.7 结束语 572 第20章 打印 573 20.1 基本打印 573 20.1.1 打印元素 574 20.1.2 变换打印输出 576 20.1.3 打印不显示的元素 578 20.1.4 打印文档 579 20.1.5 在文档打印输出 控制页面 582 20.2 自定义打印 584 20.2.1 使用可视化层的类 进行打印 584 20.2.2 自定义多页打印 587 20.3 打印设置和管理 592 20.3.1 保存打印设置 592 20.3.2 打印页面范围 593 20.3.3 管理打印队列 593 20.4 通过XPS进行打印 596 20.4.1 为打印预览创建XPS文档 597 20.4.2 通过XPS直接打印 到打印机 598 20.4.3 异步打印 598 20.5 结束语 599 第21章 动画 600 21.1 理解WPF动画 600 21.1.1 基于时间的动画 600 21.1.2 基于属性的动画 601 21.2 基本动画 602 21.2.1 Animation类 602 21.2.2 使用代码创建动画 605 21.2.3 同时发生的动画 609 21.2.4 动画生命期 610 21.2.5 Timeline类 611 21.3 声明式动画和故事板 614 21.3.1 故事板 614 21.3.2 事件触发器 615 21.3.3 重叠动画 619 21.3.4 同时发生的动画 620 21.3.5 控制播放 620 21.3.6 监视动画进度 624 21.3.7 期望的帧速率 626 21.4 动画类型回顾 628 21.4.1 使用动画改变变换 629 21.4.2 使用动画改变画刷 633 21.4.3 关键帧动画 635 21.4.4 基于路径的动画 638 21.4.5 基于帧的动画 640 21.5 结束语 644 第22章 声音和视频 645 22.1 播放WAV音频 645 22.1.1 SoundPlayer类 646 22.1.2 SoundPlayerAction类 647 22.1.3 系统声音 648 22.2 MediaPlayer类 648 22.3 MediaElement类 650 22.3.1 使用代码播放音频 650 22.3.2 处理错误 651 22.3.3 使用触发器播放音频 652 22.3.4 播放多个声音 654 22.3.5 改变音量、平衡、速度 以及播放位置 655 22.3.6 将动画同步到音频 657 22.3.7 播放视频 658 22.3.8 视频效果 659 22.4 语音 661 22.4.1 语音合成 662 22.4.2 语音识别 663 22.5 结束语 665 第23章 3D绘图 666 23.1 3D绘图基础 666 23.1.1 视口 667 23.1.2 3D对象 667 23.1.3 摄像机 674 23.2 深入研究3D绘图 678 23.2.1 着色和法线 679 23.2.2 更加复杂的形状 682 23.2.3 Model3DGroup集合 683 23.2.4 使用材质 684 23.2.5 纹理映射 686 23.3 交互和动画 690 23.3.1 变换 690 23.3.2 旋转 691 23.3.3 飞过 692 23.3.4 跟踪球 694 23.3.5 命测试 696 23.3.6 3D表面上的2D元素 700 23.4 结束语 702 第24章 自定义元素 704 24.1 理解WPF的 自定义元素 705 24.2 构建基本的用户控件 707 24.2.1 定义依赖项属性 707 24.2.2 定义路由事件 710 24.2.3 添加标记 711 24.2.4 使用控件 713 24.2.5 命令支持 713 24.2.6 深入分析用户控件 716 24.3 无外观控件 717 24.3.1 修改颜色拾取器的代码 717 24.3.2 修改颜色拾取器的标记 718 24.3.3 流线化控件模板 720 24.3.4 特定主题样式和默认样式 722 24.4 扩展已有控件 724 24.4.1 理解掩码编辑控件 724 24.4.2 屏蔽语法 725 24.4.3 MaskedTextProvider类 726 24.4.4 实现一个WPF屏蔽文本框 726 24.4.5 改进MaskedTextBox控件 730 24.5 自定义面板 731 24.5.1 两步布局处理 732 24.5.2 Canvas面板克隆 734 24.5.3 更好的换行面板 735 24.6 自定义绘图元素 738 24.6.1 OnRender( )方法 739 24.6.2 评估自定义绘图 740 24.6.3 自定义绘图元素 741 24.6.4 自定义装饰元素 743 24.7 结束语 744 第25章 与Windows窗体的互操作 745 25.1 访问互操作性 745 25.2 混合窗口和窗体 748 25.2.1 为WPF应用程序添加窗体 748 25.2.2 为Windows窗体应用程序 添加WPF窗口 748 25.2.3 显示模态窗口和窗体 749 25.2.4 显示非模态窗口和窗体 749 25.2.5 Windows窗体控件的 可视化风格 750 25.2.6 不需要互操作性的 Windows窗体类 750 25.3 创建具有混合内容的窗口 754 25.3.1 WPF和Windows 窗体"空域" 755 25.3.2 在WPF宿主Windows 窗体控件 756 25.3.3 WPF和Windows窗体 用户控件 758 25.3.4 在Windows窗体宿主 WPF控件 759 25.3.5 访问键、助记码和焦点 761 25.3.6 属性映射 762 25.4 结束语 764 第26章 多线程和插件 765 26.1 多线程 765 26.1.1 Dispatcher类 766 26.1.2 DispatcherObject类 766 26.1.3 BackgroundWorker类 769 26.2 应用程序插件 775 26.2.1 插件管线 776 26.2.2 使用插件的应用程序 780 26.2.3 与宿主交互 787 26.2.4 可视化插件 792 26.3 结束语 794 第27章 ClickOnce部署 795 27.1 应用程序部署 795 27.1.1 理解ClickOnce 796 27.1.2 ClickOnce安装模型 796 27.1.3 ClickOnce的局限 798 27.2 简单的ClickOnce发布 798 27.2.1 选择位置 799 27.2.2 部署文件 803 27.2.3 安装ClickOnce应用程序 803 27.2.4 更新ClickOnce应用程序 805 27.3 ClickOnce选项 805 27.3.1 发布版本 806 27.3.2 更新策略 807 27.3.3 发布选项 808 27.4 结束语 809
第Ⅰ部分 基础知识 第1章 WPF概述 3 1.1 Windows图形演化 3 1.1.1 DirectX:新的图形引擎 4 1.1.2 硬件加速与WPF 4 1.2 WPF:高级API 4 1.3 分辨率无关性 5 1.3.1 WPF单位 6 1.3.2 系统DPI 7 1.3.3 位图和矢量图形 9 1.4 WPF体系结构 10 1.5 WPF 4.5 13 1.5.1 WPF工具包 14 1.5.2 Visual Studio 2012 14 1.6 小结 16 第2章 XAML 17 2.1 理解XAML 17 2.1.1 WPF之前的图形用户界面 17 2.1.2 XAML变体 19 2.1.3 XAML编译 19 2.2 XAML基础 20 2.2.1 XAML名称空间 21 2.2.2 代码隐藏类 22 2.3 XAML的属性和事件 24 2.3.1 简单属性与类型转换器 25 2.3.2 复杂属性 26 2.3.3 标记扩展 28 2.3.4 附加属性 29 2.3.5 嵌套元素 30 2.3.6 特殊字符与空白 32 2.3.7 事件 34 2.3.8 完整的Eight Ball Answer示例 35 2.4 使用其他名称空间的类型 36 2.5 加载和编译XAML 38 2.5.1 只使用代码 38 2.5.2 使用代码和未经编译的XAML 40 2.5.3 使用代码和编译过的XAML 42 2.5.4 只使用XAML 44 2.6 小结 45 第3章 布局 47 3.1 理解WPF的布局 47 3.1.1 WPF布局原则 47 3.1.2 布局过程 48 3.1.3 布局容器 48 3.2 使用StackPanel面板进行简单 布局 50 3.2.1 布局属性 52 3.2.2 对齐方式 52 3.2.3 边距 53 3.2.4 最小尺寸、最大尺寸以及显式地 设置尺寸 54 3.2.5 Border控件 56 3.3 WrapPanel和DockPanel面板 57 3.3.1 WrapPanel面板 57 3.3.2 DockPanel面板 58 3.3.3 嵌套布局容器 59 3.4 Grid面板 60 3.4.1 调整行和列 63 3.4.2 布局舍入 64 3.4.3 跨越行和列 65 3.4.4 分割窗口 66 3.4.5 共享尺寸组 69 3.4.6 UniformGrid面板 72 3.5 使用Canvas面板进行基于 坐标的布局 72 3.5.1 Z顺序 73 3.5.2 lnkCanvas元素 74 3.6 布局示例 76 3.6.1 列设置 76 3.6.2 动态内容 77 3.6.3 组合式用户界面 79 3.7 小结 80 第4章 依赖项属性 83 4.1 理解依赖项属性 83 4.1.1 定义依赖项属性 84 4.1.2 注册依赖项属性 84 4.1.3 添加属性包装器 86 4.1.4 WPF使用依赖项属性的方式 87 4.1.5 共享的依赖项属性 88 4.1.6 附加的依赖项属性 88 4.2 属性验证 90 4.2.1 验证回调 90 4.2.2 强制回调 91 4.3 小结 93 第5章 路由事件 95 5.1 理解路由事件 95 5.1.1 定义、注册和封装路由事件 95 5.1.2 共享路由事件 96 5.1.3 引发路由事件 96 5.1.4 处理路由事件 97 5.2 事件路由 99 5.2.1 RoutedEventArgs类 100 5.2.2 冒泡路由事件 100 5.2.3 处理挂起的事件 103 5.2.4 附加事件 103 5.2.5 隧道路由事件 105 5.3 WPF事件 106 5.3.1 生命周期事件 106 5.3.2 输入事件 108 5.4 键盘输入 108 5.4.1 处理按键事件 109 5.4.2 焦点 111 5.4.3 获取键盘状态 112 5.5 鼠标输入 113 5.5.1 鼠标单击 115 5.5.2 捕获鼠标 115 5.5.3 鼠标拖放 116 5.6 多点触控输入 118 5.6.1 多点触控的输入层次 119 5.6.2 原始触控 119 5.6.3 操作 122 5.6.4 惯性 124 5.7 小结 125 第Ⅱ部分 进一步研究WPF 第6章 控件 129 6.1 控件类 129 6.1.1 背景画刷和前景画刷 130 6.1.2 字体 132 6.1.3 鼠标光标 136 6.2 内容控件 137 6.2.1 Content属性 138 6.2.2 对齐内容 140 6.2.3 WPF内容原则 141 6.2.4 标签 142 6.2.5 按钮 142 6.2.6 工具提示 145 6.3 特殊容器 151 6.3.1 ScrollViewer 152 6.3.2 GroupBox 154 6.3.3 TabItem 154 6.3.4 Expander 155 6.4 文本控件 158 6.4.1 多行文本 158 6.4.2 选择文本 159 6.4.3 拼写检查 160 6.4.4 PasswordBox 162 6.5 列表控件 162 6.5.1 ListBox 163 6.5.2 ComboBox 166 6.6 基于范围的控件 166 6.6.1 Slider 167 6.6.2 ProgressBar 168 6.7 日期控件 169 6.8 小结 171 第7章 Application类 173 7.1 应用程序的生命周期 173 7.1.1 创建Application对象 173 7.1.2 派生自定义的Application类 174 7.1.3 应用程序的关闭方式 176 7.1.4 应用程序事件 177 7.2 Application类的任务 179 7.2.1 显示初始界面 179 7.2.2 处理命令行参数 180 7.2.3 访问当前Application对象 181 7.2.4 在窗口之间进行交互 182 7.2.5 单实例应用程序 184 7.3 程序集资源 189 7.3.1 添加资源 189 7.3.2 检索资源 190 7.3.3 pack URI 192 7.3.4 内容文件 193 7.4 本地化 193 7.4.1 构建能够本地化的用户界面 194 7.4.2 使应用程序为本地化做好准备 194 7.4.3 管理翻译过程 195 7.5 小结 200 第8章 元素绑定 201 8.1 将元素绑定到一起 201 8.1.1 绑定表达式 202 8.1.2 绑定错误 203 8.1.3 绑定模式 203 8.1.4 使用代码创建绑定 205 8.1.5 使用代码检索绑定 206 8.1.6 多绑定 207 8.1.7 绑定更新 210 8.1.8 绑定延迟 211 8.2 绑定到非元素对象 211 8.2.1 Source属性 212 8.2.2 RelativeSource属性 212 8.2.3 DataContext属性 213 8.3 小结 214 第9章 命令 215 9.1 理解命令 215 9.2 WPF命令模型 216 9.2.1 ICommand接口 217 9.2.2 RoutedCommand类 217 9.2.3 RoutedUICommand类 218 9.2.4 命令库 219 9.3 执行命令 220 9.3.1 命令源 220 9.3.2 命令绑定 221 9.3.3 使用多命令源 223 9.3.4 微调命令文本 224 9.3.5 直接调用命令 224 9.3.6 禁用命令 225 9.3.7 具有内置命令的控件 227 9.4 高级命令 229 9.4.1 自定义命令 229 9.4.2 在不同位置使用相同的命令 230 9.4.3 使用命令参数 232 9.4.4 跟踪和翻转命令 233 9.5 小结 237 第10章 资源 239 10.1 资源基础 239 10.1.1 资源集合 239 10.1.2 资源的层次 241 10.1.3 静态资源和动态资源 242 10.1.4 非共享资源 243 10.1.5 通过代码访问资源 244 10.1.6 应用程序资源 244 10.1.7 系统资源 245 10.2 资源字典 246 10.2.1 创建资源字典 246 10.2.2 使用资源字典 247 10.2.3 在程序集之间共享资源 248 10.3 小结 251 第11章 样式和行为 253 11.1 样式基础 253 11.1.1 创建样式对象 256 11.1.2 设置属性 257 11.1.3 关联事件处理程序 258 11.1.4 多层样式 259 11.1.5 通过类型自动应用样式 261 11.2 触发器 262 11.2.1 简单触发器 262 11.2.2 事件触发器 264 11.3 行为 266 11.3.1 获取行为支持 266 11.3.2 理解行为模型 267 11.3.3 创建行为 268 11.3.4 使用行为 270 11.3.5 Blend的设计时行为支持 271 11.4 小结 271 第Ⅲ部分 图画和动画 第12章 形状、画刷和变换 275 12.1 理解形状 275 12.1.1 Shape类 276 12.1.2 矩形和椭圆 277 12.1.3 改变形状的尺寸和放置形状 278 12.1.4 使用Viewbox控件缩放形状 280 12.1.5 直线 282 12.1.6 折线 283 12.1.7 多边形 284 12.1.8 直线线帽和直线交点 286 12.1.9 点划线 287 12.1.10 像素对齐 288 12.2 画刷 289 12.2.1 SolidColorBrush画刷 290 12.2.2 LinearGradientBrush画刷 290 12.2.3 RadialGradientBrush画刷 292 12.2.4 ImageBrush画刷 294 12.2.5 平铺的ImageBrush画刷 295 12.2.6 VisualBrush画刷 297 12.2.7 BitmapCacheBrush画刷 298 12.3 变换 299 12.3.1 变换形状 300 12.3.2 变换元素 302 12.4 透明 303 12.4.1 使元素半透明 303 12.4.2 透明掩码 304 12.5 小结 306 第13章 几何图形和图画 307 13.1 路径和几何图形 307 13.1.1 直线、矩形和椭圆图形 308 13.1.2 使用GeometryGroup 组合形状 309 13.1.3 使用CombinedGeometry融合 几何图形 311 13.1.4 使用PathGeometry绘制曲线和 直线 313 13.1.5 微语言几何图形 318 13.1.6 使用几何图形进行剪裁 319 13.2 图画 320 13.2.1 显示图画 322 13.2.2 导出插图 324 13.3 小结 326 第14章 效果和可视化对象 327 14.1 可视化对象 327 14.1.1 绘制可视化对象 328 14.1.2 在元素封装可视化对象 329 14.1.3 命测试 332 14.1.4 复杂的命测试 334 14.2 效果 338 14.2.1 BlurEffect类 338 14.2.2 DropShadowEffect类 339 14.2.3 ShaderEffect类 340 14.3 WriteableBitmap类 342 14.3.1 生成位图 342 14.3.2 写入WriteableBitmap对象 343 14.3.3 更高效的像素写入 345 14.4 小结 347 第15章 动画基础 349 15.1 理解WPF动画 349 15.1.1 基于时间的动画 349 15.1.2 基于属性的动画 350 15.2 基本动画 351 15.2.1 Animation类 351 15.2.2 使用代码创建动画 353 15.2.3 同时发生的动画 358 15.2.4 动画的生命周期 358 15.2.5 Timeline类 359 15.3 故事板 362 15.3.1 故事板 363 15.3.2 事件触发器 363 15.3.3 重叠动画 366 15.3.4 同步的动画 367 15.3.5 控制播放 367 15.3.6 监视动画进度 371 15.4 动画缓动 373 15.4.1 使用缓动函数 373 15.4.2 在动画开始时应用缓动与在动画 结束时应用缓动 374 15.4.3 缓动函数类 375 15.4.4 创建自定义缓动函数 377 15.5 动画性能 379 15.5.1 期望的帧率 380 15.5.2 位图缓存 382 15.6 小结 384 第16章 高级动画 385 16.1 动画类型回顾 385 16.1.1 动态变换 386 16.1.2 动态改变画刷 390 16.1.3 动态改变像素着色器 392 16.2 关键帧动画 393 16.2.1 离散的关键帧动画 395 16.2.2 缓动关键帧 395 16.2.3 样条关键帧动画 396 16.3 基于路径的动画 397 16.4 基于帧的动画 399 16.5 使用代码创建故事板 402 16.5.1 创建主窗口 403 16.5.2 创建Bomb用户控件 405 16.5.3 投弹 406 16.5.4 拦截炸弹 409 16.5.5 统计炸弹和清理工作 410 16.6 小结 412 第Ⅳ部分 模板和自定义元素 第17章 控件模板 417 17.1 理解逻辑树和可视化树 417 17.2 理解模板 422 17.2.1 修饰类 424 17.2.2 剖析控件 426 17.3 创建控件模板 428 17.3.1 简单按钮 429 17.3.2 模板绑定 430 17.3.3 改变属性的触发器 431 17.3.4 使用动画的触发器 434 17.4 组织模板资源 435 17.4.1 分解按钮控件模板 436 17.4.2 通过样式应用模板 438 17.4.3 自动应用模板 439 17.4.4 由用户选择的皮肤 440 17.5 构建更复杂的模板 442 17.5.1 嵌套的模板 443 17.5.2 修改滚动条 445 17.5.3 控件模板示例 450 17.6 可视化状态 451 17.7 小结 452 第18章 自定义元素 453 18.1 理解WPF的自定义元素 454 18.2 构建基本的用户控件 456 18.2.1 定义依赖项属性 456 18.2.2 定义路由事件 459 18.2.3 添加标记 460 18.2.4 使用控件 462 18.2.5 命令支持 462 18.2.6 深入分析用户控件 465 18.3 创建无外观控件 466 18.3.1 修改颜色拾取器的代码 466 18.3.2 修改颜色拾取器的标记 467 18.3.3 精简控件模板 469 18.4 支持可视化状态 472 18.4.1 开始编写FlipPanel类 473 18.4.2 选择部件和状态 475 18.4.3 默认控件模板 476 18.4.4 使用FlipPanel控件 482 18.4.5 使用不同的控件模板 483 18.5 创建自定义面板 485 18.5.1 两步布局过程 485 18.5.2 Canvas面板的副本 488 18.5.3 更好的WrapPanel面板 489 18.6 自定义绘图元素 492 18.6.1 OnRender( )方法 493 18.6.2 评估自定义绘图 494 18.6.3 自定义绘图元素 495 18.6.4 创建自定义装饰元素 497 18.7 小结 498 第Ⅴ部分 数据 第19章 数据绑定 501 19.1 使用自定义对象绑定到 数据库 501 19.1.1 构建数据访问组件 502 19.1.2 构建数据对象 504 19.1.3 显示绑定对象 505 19.1.4 更新数据库 508 19.1.5 更改通知 508 19.2 绑定到对象集合 510 19.2.1 显示和编辑集合项 510 19.2.2 插入和移除集合项 513 19.2.3 绑定到ADO.NET对象 514 19.2.4 绑定到LINQ表达式 515 19.3 提高大列表的性能 518 19.3.1 虚拟化 518 19.3.2 项容器再循环 519 19.3.3 缓存长度 519 19.3.4 延迟滚动 520 19.4 验证 521 19.4.1 在数据对象进行验证 521 19.4.2 自定义验证规则 526 19.4.3 响应验证错误 528 19.4.4 获取错误列表 529 19.4.5 显示不同的错误指示符号 530 19.4.6 验证多个值 533 19.5 数据提供者 535 19.5.1 ObjectDataProvider 536 19.5.2 XmlDataProvider 539 19.6 小结 541 第20章 格式化绑定的数据 543 20.1 数据绑定回顾 543 20.2 数据转换 544 20.2.1 使用StringFormat属性 545 20.2.2 值转换器简介 546 20.2.3 使用值转换器设置字符串 的格式 547 20.2.4 使用值转换器创建对象 549 20.2.5 应用条件格式化 551 20.2.6 评估多个属性 552 20.3 列表控件 554 20.4 列表样式 555 20.4.1 ItemContainerStyle 556 20.4.2 包含复选框或单选按钮的ListBox 控件 557 20.4.3 交替条目样式 559 20.4.4 样式选择器 561 20.5 数据模板 564 20.5.1 分离和重用模板 566 20.5.2 使用更高级的模板 567 20.5.3 改变模板 569 20.5.4 模板选择器 570 20.5.5 模板与选择 573 20.5.6 改变项的布局 577 20.6 ComboBox控件 578 20.7 小结 581 第21章 数据视图 583 21.1 View对象 583 21.1.1 检索视图对象 584 21.1.2 视图导航 584 21.1.3 以声明方式创建视图 587 21.2 过滤、排序与分组 588 21.2.1 过滤集合 588 21.2.2 过滤DataTable对象 591 21.2.3 排序 592 21.2.4 分组 593 21.2.5 实时成型 598 21.3 小结 599 第22章 列表、树和网格 601 22.1 ListView控件 601 22.1.1 使用GirdView创建列 602 22.1.2 创建自定义视图 606 22.2 TreeView控件 613 22.2.1 创建数据绑定的TreeView 控件 614 22.2.2 将DataSet对象绑定到TreeView 控件 617 22.2.3 即时创建节点 618 22.3 DataGrid控件 621 22.3.1 改变列的尺寸与重新安排列 622 22.3.2 定义列 623 22.3.3 设置列的格式和样式 628 22.3.4 设置行的格式 629 22.3.5 显示行细节 630 22.3.6 冻结列 631 22.3.7 选择 632 22.3.8 排序 632 22.3.9 编辑 633 22.4 小结 635 第Ⅵ 窗口、页面和富控件 第23章 窗口 639 23.1 Window类 639 23.1.1 显示窗口 641 23.1.2 定位窗口 642 23.1.3 保存和还原窗口位置 642 23.2 窗口交互 644 23.2.1 窗口所有权 646 23.2.2 对话框模型 647 23.2.3 通用对话框 648 23.3 非矩形窗口 649 23.3.1 简单形状窗口 649 23.3.2 具有形状内容的透明窗口 651 23.3.3 移动形状窗口 653 23.3.4 改变形状窗口的尺寸 653 23.3.5 组合到一起:窗口的自定义控件 模板 655 23.4 Windows 7任务栏编程 658 23.4.1 使用跳转列表 659 23.4.2 改变任务栏图标和预览 663 23.5 小结 667 第24章 页面和导航 669 24.1 基于页面的导航 669 24.2 基于页面的界面 670 24.2.1 创建一个具有导航窗口的基于 页面的简单应用程序 670 24.2.2 Page类 672 24.2.3 超链接 673 24.2.4 在框架驻留页面 675 24.2.5 在另一个页面驻留页面 677 24.2.6 在Web浏览器驻留页面 678 24.3 页面历史 678 24.3.1 深入分析WPF的URI 678 24.3.2 导航历史 679 24.3.3 维护自定义的属性 681 24.4 导航服务 682 24.4.1 通过编程进行导航 682 24.4.2 导航事件 683 24.4.3 管理日志 684 24.4.4 向日志添加自定义项 685 24.4.5 使用页函数 689 24.5 XAML浏览器应用程序 692 24.5.1 创建XBAP应用程序 692 24.5.2 部署XBAP应用程序 693 24.5.3 更新XBAP应用程序 695 24.5.4 XBAP应用程序的安全性 695 24.5.5 完全信任的XBAP应用程序 696 24.5.6 组合XBAP/独立应用程序 697 24.5.7 为不同的安全级别编写代码 697 24.5.8 在网页嵌入XBAP 应用程序 702 24.6 WebBrowser控件 702 24.6.1 导航到页面 703 24.6.2 构建DOM树 704 24.6.3 使用.NET代码为网页添加 脚本 706 24.7 小结 708 第25章 菜单、工具栏和功能区 709 25.1 菜单 709 25.1.1 Menu类 710 25.1.2 菜单项 710 25.1.3 ContextMenu类 712 25.1.4 菜单分隔条 713 25.2 工具栏和状态栏 714 25.2.1 ToolBar控件 714 25.2.2 StatusBar控件 717 25.3 功能区 718 25.3.1 添加功能区 719 25.3.2 应用程序菜单 720 25.3.3 选项卡、组与按钮 722 25.3.4 富工具提示 724 25.3.5 带有快捷键提示的键盘访问 725 25.3.6 改变功能区的大小 726 25.3.7 快速访问工具栏 729 25.4 小结 730 第26章 声音和视频 731 26.1 播放WAV音频 731 26.1.1 SoundPlayer类 731 26.1.2 SoundPlayerAction类 733 26.1.3 系统声音 733 26.2 MediaPlayer类 734 26.3 MediaElement类 735 26.3.1 使用代码播放音频 736 26.3.2 处理错误 737 26.3.3 使用触发器播放音频 737 26.3.4 播放多个声音 739 26.3.5 改变音量、平衡、速度以及 位置 740 26.3.6 将动画同步到音频 742 26.3.7 播放视频 744 26.3.8 视频效果 744 26.4 语音 747 26.4.1 语音合成 747 26.4.2 语音识别 749 26.5 小结 751 第27章 3D绘图 753 27.1 3D绘图基础 753 27.1.1 视口 754 27.1.2 3D对象 754 27.1.3 摄像机 761 27.2 深入研究3D绘图 765 27.2.1 着色和法线 766 27.2.2 更复杂的形状 769 27.2.3 Model3DGroup集合 769 27.2.4 使用材质 771 27.2.5 纹理映射 773 27.3 交互和动画 777 27.3.1 变换 777 27.3.2 旋转 778 27.3.3 飞过 779 27.3.4 跟踪球 781 27.3.5 命测试 782 27.3.6 3D表面上的2D元素 786 27.4 小结 789 第Ⅶ部分 文档和打印 第28章 文档 793 28.1 理解文档 793 28.2 流文档 794 28.2.1 流内容元素 795 28.2.2 设置内容元素的格式 796 28.2.3 创建简单的流文档 797 28.2.4 块元素 799 28.2.5 内联元素 804 28.2.6 通过代码与元素进行交互 809 28.2.7 文本对齐 812 28.3 只读流文档容器 813 28.3.1 缩放 814 28.3.2 创建页面和列 815 28.3.3 从文件加载文档 817 28.3.4 打印 818 28.4 编辑流文档 818 28.4.1 加载文件 819 28.4.2 保存文件 821 28.4.3 设置所选文本的格式 822 28.4.4 获取单个单词 824 28.5 固定文档 825 28.6 批注 826 28.6.1 批注类 827 28.6.2 启用批注服务 828 28.6.3 创建批注 829 28.6.4 检查批注 832 28.6.5 响应批注更改 835 28.6.6 在固定文档保存批注 835 28.6.7 自定义便签的外观 836 28.7 小结 837 第29章 打印 839 29.1 基本打印 839 29.1.1 打印元素 840 29.1.2 变换打印输出 842 29.1.3 打印不显示的元素 844 29.1.4 打印文档 845 29.1.5 在文档打印输出控制页面 848 29.2 自定义打印 851 29.2.1 使用可视化层的类 进行打印 851 29.2.2 自定义多页打印 854 29.3 打印设置和管理 859 29.3.1 保存打印设置 859 29.3.2 打印页面范围 859 29.3.3 管理打印队列 860 29.4 通过XPS进行打印 863 29.4.1 为打印预览创建XPS文档 863 29.4.2 写入内存的XPS文档 864 29.4.3 通过XPS直接打印到 打印机 865 29.4.4 异步打印 866 29.5 小结 866 第Ⅷ部分 其他主题 第30章 与Windows窗体进行交互 869 30.1 访问互操作性 869 30.2 混合窗口和窗体 870 30.2.1 为WPF应用程序添加窗体 870 30.2.2 为Windows窗体应用程序 添加WPF窗口 870 30.2.3 显示模态窗口和窗体 871 30.2.4 显示非模态窗口和窗体 871 30.2.5 启用Windows窗体控件的 可视化风格 872 30.3 创建具有混合内容的窗口 872 30.3.1 WPF和Windows窗体 “空域” 873 30.3.2 在WPF驻留Windows 窗体控件 874 30.3.3 使用WPF和Windows窗体 用户控件 876 30.3.4 在Windows窗体驻留WPF 控件 877 30.3.5 访问键、助记码和焦点 879 30.3.6 属性映射 880 30.4 小结 882 第31章 多线程 883 31.1 了解多线程模型 883 31.1.1 Dispatcher类 884 31.1.2 DispatcherObject类 884 31.2 BackgroundWorker类 887 31.2.1 简单的异步操作 887 31.2.2 创建BackgroundWorker 对象 888 31.2.3 运行BackgroundWorker 对象 889 31.2.4 跟踪进度 891 31.2.5 支持取消 893 31.3 小结 894 第32章 插件模型 895 32.1 在MAF和MEF两者间 进行选择 895 32.2 了解插件管道 896 32.2.1 管道的工作原理 897 32.2.2 插件文件夹结构 898 32.2.3 为使用插件模型准备 解决方案 899 32.3 创建使用插件模型的 应用程序 900 32.3.1 协定 901 32.3.2 插件视图 901 32.3.3 插件 902 32.3.4 插件适配器 902 32.3.5 宿主视图 903 32.3.6 宿主适配器 904 32.3.7 宿主 904 32.3.8 更多插件 907 32.4 与宿主进行交互 908 32.5 可视化插件 912 32.6 小结 915 第33章 ClickOnce部署 917 33.1 理解应用程序部署 917 33.1.1 ClickOnce安装模型 918 33.1.2 ClickOnce部署的局限性 919 33.2 简单的ClickOnce发布 920 33.2.1 设置发布者和产品 920 33.2.2 启动发布向导 922 33.2.3 理解部署文件的结构 926 33.2.4 安装ClickOnce应用程序 926 33.2.5 更新ClickOnce应用程序 928 33.3 ClickOnce附加选项 928 33.3.1 发布版本 928 33.3.2 更新 929 33.3.3 文件关联 930 33.3.4 发布选项 931 33.4 小结 932

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧