內容簡介
本版對上一版進行了大量的擴充,新增了有關WPF、LINQ、UAC安全、WCF等方面的內容。書中的基礎部分幾乎涵蓋了Visual Basic 2008所有大大小小的知識點。提高部分則從面向對象編程、使用圖形及與環境互動等方面闡述了Visual Basic 2008編程的實質性內容,其中提供了大量的示例代碼,這不僅可以提高讀者的編程技能,而且能使讀者掌握大量的編程技巧,領悟編程精髓。附錄部分提供了Visual Basic2008語言的參考,以便讀者隨時查找有用的信息。
淋漓盡致地展現了作者對VB最新版的基本主題廣泛而紮實的理解。本書闡釋了在現代Windows 環境中構建VB應用程式時所使用的窗體、控制項和其他對象,分析了使VB成為多功能語言的
圖書目錄
第Ⅰ部分IDE
第1章IDE簡介 3
1.1不同的IDE外觀 4
1.2IDE配置 5
1.3項目和解決方案 6
1.4啟動IDE 6
1.5創建項目 7
1.6保存項目 10
1.7小結 11
第2章選單、工具列和視窗 13
2.1選單 13
2.1.1File選單 14
2.1.2Edit選單 16
2.1.3View選單 17
2.1.4Project選單 19
2.1.5Build選單 23
2.1.6Debug選單 24
2.1.7Data選單 24
2.1.8Format選單 24
2.1.9Tools選單 25
2.1.10Test選單 29
2.1.11Window選單 29
2.1.12Community選單 30
2.1.13Help選單 30
2.2工具列 31
2.3輔助視窗 31
2.3.1Toolbox視窗 32
2.3.2Properties視窗 34
2.4小結 35
第3章定製 37
3.1添加命令 37
3.2刪除命令 38
3.3修改命令 39
3.4創建鍵盤快捷鍵 40
3.5小結 41
第4章WindowsFormDesigner 43
4.1設定設計器的選項 43
4.2添加控制項 44
4.3選擇控制項 45
4.4複製控制項 45
4.5控制項的移動和大小設定 46
4.6安排控制項 46
4.7設定屬性 47
4.7.1設定組屬性 47
4.7.2設定幾個控制項的屬性 47
4.7.3使用智慧型標記 48
4.7.4使用命令動詞 48
4.8給控制項添加代碼 49
4.9小結 50
第5章WPF設計器 51
5.1早期版本的警告 51
5.2設計器視窗 52
5.3添加控制項 53
5.4選擇控制項 54
5.5複製控制項 55
5.6控制項的移動和大小設定 55
5.7設定屬性 56
5.8設定組屬性 57
5.9給控制項添加代碼 57
5.10小結 58
第6章VisualBasic代碼編輯器 59
6.1邊空圖示 60
6.2大綱視圖 61
6.3工具提示 62
6.4IntelliSense 63
6.5代碼著色和突出顯示 65
6.6代碼段 67
6.6.1使用代碼段 67
6.6.2創建代碼段 68
6.7運行時的代碼編輯器 70
6.8小結 71
第7章調試 73
7.1Debug選單 73
7.2Debug→Windows子選單 75
7.3Breakpoint視窗 79
7.4Command視窗和Immediate
視窗 80
7.5小結 82
第Ⅱ部分開始學習
第8章選擇Windows窗體控制項 85
8.1控制項概述 85
8.2選擇控制項 89
8.2.1包含控制項和安排控制項 89
8.2.2進行選擇 91
8.2.3輸入數據 92
8.2.4顯示數據 92
8.2.5提供反饋 93
8.2.6初始化動作 94
8.2.7顯示圖形 95
8.2.8顯示對話框 95
8.2.9支持其他控制項 96
8.3第三方控制項 96
8.4小結 97
第9章使用Windows窗體控制項 99
9.1控制項和組件 99
9.2創建控制項 100
9.2.1在設計時創建控制項 101
9.2.2添加控制項到容器 101
9.2.3在運行時創建控制項 102
9.3屬性 104
9.3.1設計時的屬性 104
9.3.2運行時的屬性 108
9.3.3有用的控制項屬性 109
9.3.4位置和尺寸屬性 112
9.4方法 113
9.5事件 114
9.5.1在設計時創建事件處理程式 114
9.5.2WithEvents事件處理程式 115
9.5.3在運行時設定事件處理程式 116
9.5.4控制項數組事件 117
9.5.5驗證事件 117
9.6小結 122
第10章Windows窗體 123
10.1透明性 123
10.2About對話框、啟動畫面和
登錄窗體 126
10.3滑鼠游標 127
10.4圖示 129
10.4.1應用程式圖示 130
10.4.2通知圖示 130
10.5子控制項採用的屬性 131
10.6屬性復位方法 132
10.7重寫WndProc 132
10.8SDI和MDI 133
10.8.1MDI的功能 134
10.8.2MDI事件 137
10.8.3MDI與SDI的對比 138
10.9MRU列表 139
10.10對話框 141
10.11嚮導 143
10.12小結 144
第11章選擇WPF控制項 145
11.1控制項概述 146
11.2包含和安排控制項 146
11.3選擇控制項 148
11.4輸入數據 148
11.5顯示數據 149
11.6提供反饋 149
11.7執行動作 150
11.8表示圖形和媒體 151
11.9提供導航 152
11.10管理文檔 152
11.11數字墨水 152
11.12小結 153
第12章使用WPF控制項 155
12.1WPF概念 155
12.1.1用戶界面和代碼分離 156
12.1.2WPF控制項層次結構 156
12.2IDE中的WPF 157
12.2.1編輯XAML 158
12.2.2編輯VisualBasic代碼 161
12.3XAML功能 163
12.3.1對象 164
12.3.2資源 166
12.3.3樣式 167
12.3.4模板 168
12.3.5變換 170
12.3.6動畫 171
12.3.7繪圖對象 173
12.4過程化WPF 177
12.5文檔 181
12.5.1流文檔 182
12.5.2固定文檔 183
12.5.3XPS文檔 184
12.6小結 184
第13章WPF視窗 187
13.1Window應用程式 187
13.2Page應用程式 189
13.2.1瀏覽器應用程式 189
13.2.2框架應用程式 191
13.2.3PageFunction應用程式 192
13.2.4嚮導應用程式 194
13.3小結 198
第14章程式和模組結構 199
14.1隱藏檔案 199
14.2代碼檔案結構 203
14.2.1代碼區域 204
14.2.2條件編譯 205
14.2.3名稱空間 211
14.3印刷代碼元素 213
14.3.1注釋 213
14.3.2XML注釋 214
14.3.3續行 217
14.3.4行連線 218
14.3.5行標籤 218
14.4小結 218
第15章數據類型、變數和常量 221
15.1數據類型 222
15.2類型字元 223
15.3數據類型轉換 225
15.3.1收縮轉換 226
15.3.2數據類型解析方法 228
15.3.3擴大轉換 228
15.4變數聲明 228
15.4.1attribute_list 229
15.4.2accessibility子句 229
15.4.3Shared 230
15.4.4Shadows 231
15.4.5ReadOnly 233
15.4.6Dim 233
15.4.7WithEvents 234
15.4.8name 236
15.4.9bounds_list 236
15.4.10New 237
15.4.11as子句和推斷類型 238
15.4.12initialization_expression 239
15.4.13多個變數的聲明 242
15.5OptionExplicit和
OptionStrict 243
15.6作用域 245
15.6.1塊作用域 245
15.6.2過程作用域 246
15.6.3模組作用域 246
15.6.4名稱空間作用域 247
15.6.5限制作用域 247
15.7參數聲明 248
15.8屬性過程 250
15.9枚舉數據類型 251
15.10匿名類型 253
15.11可空類型 254
15.12常量 255
15.12.1accessibility 255
15.12.2AsType 256
15.12.3initialization_expression 256
15.13委託 256
15.14命名約定 258
15.15小結 259
第16章運算符 261
16.1算術運算符 261
16.2連線運算符 262
16.3比較運算符 262
16.4邏輯運算符 264
16.5按位運算符 266
16.6運算符優先權 266
16.7賦值運算符 267
16.8StringBuilder類 268
16.9Date數據類型和TimeSpan
操作 270
16.10運算符重載 273
16.11帶可空類型的運算符 275
16.12小結 276
第17章子例程和函式 277
17.1子例程 277
17.1.1attribute_list 277
17.1.2inheritance_mode 281
17.1.3accessibility 282
17.1.4subroutine_name 283
17.1.5parameters 283
17.1.6Implements
interface.subroutine 289
17.1.7statements 290
17.2函式 290
17.3屬性過程 291
17.4擴展方法 292
17.5lambda函式 293
17.6非嚴格委託 294
17.7部分方法 297
17.8小結 298
第18章程式控制語句 299
18.1判定語句 299
18.1.1單行的IfThen語句 299
18.1.2多行IfThen語句 300
18.1.3SelectCase語句 301
18.1.4枚舉值 303
18.1.5IIf語句 304
18.1.6If語句 305
18.1.7Choose語句 305
18.2循環語句 307
18.2.1ForNext循環 307
18.2.2非整數的ForNext循環 309
18.2.3ForEach循環 310
18.2.4枚舉器 311
18.2.5疊代器 313
18.2.6DoLoop循環 313
18.2.7WhileEnd循環 314
18.2.8Exit和Continue 315
18.3GoTo語句 315
18.4小結 318
第19章錯誤處理 319
19.1故障與計畫之外的情況 319
19.1.1捕獲故障 320
19.1.2捕獲預料之外的情況 321
19.1.3全局異常處理 323
19.2結構化的錯誤處理 324
19.2.1異常對象 326
19.2.2StackTrace對象 327
19.2.3拋出異常 327
19.2.4自定義異常 329
19.3VisualBasic傳統錯誤處理 331
19.3.1OnErrorGoToline 331
19.3.2OnErrorResumeNext 332
19.3.3OnErrorGoTo0 333
19.3.4OnErrorGoTo-1 333
19.3.5錯誤處理模式 334
19.4結構化錯誤處理與傳統
錯誤處理 335
19.5Err對象 336
19.6調試 338
19.7小結 338
第20章資料庫控制項和對象 339
20.1自動數據連線 339
20.1.1連線數據源 339
20.1.2添加數據控制項到窗體 342
20.2自動創建的對象 346
20.3其他數據對象 347
20.4數據概述 348
20.5連線對象 349
20.6事務對象 352
20.7數據適配器 354
20.8命令對象 358
20.9DataSet 359
20.9.1DataTable 363
20.9.2DataRow 365
20.9.3DataColumn 367
20.9.4DataRelation 369
20.9.5約束 371
20.10DataView 373
20.11DataRowView 376
20.12簡單數據綁定 377
20.13CurrencyManager 378
20.14複雜數據綁定 380
20.15小結 383
第21章LINQ 385
21.1LINQ簡介 386
21.2LINQ查詢的基本語法 387
21.2.1From子句 388
21.2.2Where子句 389
21.2.3OrderBy子句 389
21.2.4Select子句 390
21.2.5使用LINQ結果 392
21.3高級LINQ查詢語法 392
21.3.1Join關鍵字 393
21.3.2GroupBy子句 394
21.3.3聚合函式 396
21.3.4設定操作 397
21.3.5限制結果 397
21.4LINQ函式 398
21.5LINQ擴展方法 399
21.5.1基於方法的查詢 399
21.5.2使用lambda函式的基於方法的查詢 401
21.5.3擴展LINQ 402
21.6LINQtoObjects 405
21.7LINQtoXML 405
21.7.1XML字面量 405
21.7.2使用LINQ將數據移入XML對象 406
21.7.3使用LINQ將數據移出XML對象 407
21.8LINQtoADO.NET 410
21.8.1LINQtoSQL和LINQtoEntities 410
21.8.2LINQtoDataSet 411
21.9小結 413
第22章自定義控制項 415
22.1自定義控制項概述 416
22.1.1創建控制項項目 416
22.1.2設定工具箱圖示 416
22.1.3在UserControlTestContainer中測試 417
22.1.4建立測試項目 418
22.1.5測試控制項 419
22.1.6實現屬性、方法和事件 419
22.1.7分配特性 420
22.1.8管理設計時和運行時 422
22.2派生的控制項 422
22.2.1遮蔽父特性 424
22.2.2隱藏父特性 425
22.3複合控制項 426
22.4從頭開始構建控制項 428
22.5組件 429
22.6不可見的控制項 429
22.7選擇控制項類 430
22.8可執行項目中的控制項和組件 431
22.8.1可執行項目中的UserControl 431
22.8.2可執行項目中的繼承的UserControl 431
22.8.3可執行項目中的控制項 432
22.8.4可執行項目中的繼承控制項 432
22.8.5可執行項目中的組件 432
22.9自定義組件安全性 433
22.9.1強命名程式集 433
22.9.2使用簽名權威機構 435
22.10小結 435
第23章拖動、釋放和剪貼簿 437
23.1拖放事件 438
23.1.1簡單示例 439
23.1.2學習可用的數據類型 441
23.1.3在應用程式中拖動 441
23.1.4接受釋放的檔案 442
23.1.5拖動對象 443
23.1.6改變格式名稱 445
23.1.7拖動多種數據格式 446
23.2使用剪貼簿 448
23.3小結 451
第24章UAC安全功能 453
24.1UAC概覽 453
24.2規劃UAC 454
24.3提升程式 457
24.3.1用戶 457
24.3.2調用程式 457
24.3.3被調用的程式 458
24.4小結 458
第Ⅲ部分面向對象編程
第25章OOP概念 463
25.1類 463
25.2封裝 465
25.3繼承 466
25.3.1繼承的層次結構 467
25.3.2細化和抽象 468
25.3.3“有一個(has-a)”和“是一個
(is-a)”關係 469
25.3.4添加和修改類特性 470
25.3.5接口繼承 472
25.4多態 472
25.5重載 473
25.6擴展方法 475
25.7小結 475
第26章類和結構體 477
26.1類 477
26.1.1attribute_list 478
26.1.2Partial 478
26.1.3accessibility 479
26.1.4Shadows 480
26.1.5inheritance 480
26.1.6Oftype_list 482
26.1.7Inheritsparent_class 482
26.1.8Implementsinterface 483
26.2結構體 486
26.2.1結構體不可以繼承 486
26.2.2結構體是值類型 486
26.2.3所需的記憶體 487
26.2.4堆和棧的性能 488
26.2.5對象賦值 488
26.2.6參數傳遞 489
26.2.7裝箱(boxing)和
拆箱(unboxing) 490
26.3類實例化的相關細節 491
26.4結構體實例化的相關細節 493
26.5垃圾回收 495
26.5.1Finalize方法 495
26.5.2Dispose方法 497
26.6常量、屬性和方法 499
26.7事件 500
26.7.1聲明事件 500
26.7.2引發事件 502
26.7.3捕獲事件 502
26.7.4聲明自定義事件 504
26.7.5共享的變數 507
26.7.6共享的方法 508
26.8小結 510
第27章名稱空間 511
27.1Imports語句 511
27.1.1自動導入 513
27.1.2名稱空間別名 514
27.1.3名稱空間元素 515
27.2根名稱空間 515
27.3建立名稱空間 515
27.4類、結構體和模組 517
27.5解析名稱空間 518
27.6小結 521
第28章集合類 523
28.1集合的定義 523
28.2數組 524
28.2.1數組的維 525
28.2.2下界 525
28.2.3調整大小 526
28.2.4速度 526
28.2.5Array類的其他特性 527
28.3集合 529
28.3.1ArrayList 529
28.3.2StringCollection 531
28.3.3強類型的集合 531
28.3.4隻讀的強類型集合 533
28.3.5NameValueCollection 533
28.4字典 534
28.4.1ListDictionary 535
28.4.2Hashtable 536
28.4.3HybridDictionary 537
28.4.4強類型的字典 537
28.4.5其他強類型的派生類 538
28.4.6StringDictionary 539
28.4.7SortedList 539
28.5CollectionUtil 539
28.6棧和佇列 540
28.6.1棧 540
28.6.2佇列 542
28.7泛型 543
28.8小結 544
第29章泛型 547
29.1泛型的優點 547
29.2定義泛型 548
29.2.1泛型構造函式 550
29.2.2多類型 550
29.2.3約束類型 552
29.3使用泛型 553
29.3.1導入別名 554
29.3.2繼承類 554
29.4預定義泛型類 555
29.5泛型方法 555
29.6泛型和擴展方法 556
29.7小結 557
第Ⅳ部分繪圖
第30章繪圖基礎 561
30.1繪圖概述 561
30.2繪圖名稱空間 563
30.2.1System.Drawing 563
30.2.2System.Drawing.Drawing2D 565
30.2.3System.Drawing.Imaging 566
30.2.4System.Drawing.Text 567
30.2.5System.Drawing.Printing 569
30.3Graphics 570
30.3.1繪圖方法 570
30.3.2填充方法 574
30.3.3其他圖形屬性和方法 575
30.3.4抗鋸齒 577
30.3.5變換基礎 578
30.3.6高級變換 582
30.3.7保存和恢復圖形狀態 585
30.4繪圖事件 586
30.5小結 588
第31章筆刷、畫筆和路徑 589
31.1畫筆 589
31.1.1Alignment 591
31.1.2CompoundArray 592
31.1.3自定義線帽 593
31.1.4畫筆變換 594
31.2筆刷 596
31.2.1SolidBrush 597
31.2.2TextureBrush 597
31.2.3HatchBrush 599
31.2.4LinearGradientBrush 599
31.2.5PathGradientBrush 603
31.3GraphicsPath對象 607
31.4垃圾回收問題 611
31.5小結 612
第32章文本 615
32.1繪製文本 615
32.2文本格式化 616
32.2.1FormatFlags 618
32.2.2定位點 621
32.2.3修剪 621
32.3MeasureString 622
32.4字型度量標準 625
32.5小結 628
第33章圖像處理 631
33.1圖像 631
33.2點陣圖 633
33.2.1載入點陣圖 633
33.2.2保存點陣圖 634
33.2.3實現AutoRedraw 635
33.2.4像素級操作 637
33.3Metafile對象 641
33.4小結 643
第34章列印 645
34.1列印注意事項 645
34.2基本列印 646
34.3列印文本 650
34.4列印輸出居中 655
34.5縮放圖片至頁面的大小 657
34.6簡化繪圖和列印 658
34.7小結 661
第35章報表 663
35.1Report對象 663
35.2構建報表 664
35.3CrystalReportViewer 671
35.4自定義報表 672
35.5外部報表 675
35.6ReportDocument 675
35.7小結 676
第Ⅴ部分與環境互動
第36章配置和資源 681
36.1My名稱空間 681
36.1.1Me對象和My名稱空間 682
36.1.2My名稱空間的元素 682
36.2環境 683
36.2.1設定環境變數 683
36.2.2使用Environ函式 684
36.2.3使用System.Environment 684
36.3註冊表 686
36.3.1VisualBasic自帶的註冊表
方法 687
36.3.2My.Computer.Registry 688
36.4配置檔案 690
36.5資源檔案 694
36.5.1應用程式資源 694
36.5.2使用應用程式資源 694
36.5.3嵌入式資源 695
36.5.4衛星資源 696
36.5.5本地化資源 698
36.5.6ComponentResourceManager 699
36.6Application對象 701
36.6.1Application對象的屬性 701
36.6.2Application對象的方法 702
36.6.3Application對象的事件 704
36.7小結 705
第37章流 707
37.1Stream 708
37.2FileStream 709
37.3MemoryStream 709
37.4BufferedStream 710
37.5BinaryReader和
BinaryWriter 710
37.6TextReader和TextWriter 712
37.7StringReader和StringWriter 713
37.8StreamReader和
StreamWriter 714
37.9OpenText、CreateText和
AppendText方法 715
37.10自定義流類 716
37.11小結 716
第38章檔案系統對象 717
38.1許可權 717
38.2VisualBasic方法 717
38.2.1檔案方法 718
38.2.2檔案系統方法 719
38.2.3順序檔案訪問 720
38.2.4隨機檔案訪問 720
38.2.5二進制檔案訪問 722
38.3.NETFramework類 722
38.3.1Directory 723
38.3.2File 724
38.3.3DriveInfo 725
38.3.4DirectoryInfo 726
38.3.5FileInfo 727
38.3.6FileSystemInfo 729
38.3.7FileSystemWatcher 729
38.3.8Path 731
38.4My.Computer.FileSystem 732
38.5My.Computer.FileSystem.
SpecialDirectories 733
38.6小結 734
第39章WCF 737
39.1早期版本的警告 737
39.2WCF概念 738
39.3WCF示例 738
39.4構建初始服務 739
39.5構建QuoteService 741
39.6測試QuoteService 743
39.7構建QuoteClient 744
39.8託管服務 744
39.9小結 746
第40章有用的名稱空間 747
40.1高級名稱空間 747
40.1.1Microsoft名稱空間 748
40.1.2System名稱空間 748
40.2高級示例 750
40.2.1正則表達式 750
40.2.2XML 752
40.2.3加密 754
40.2.4反射 757
40.2.5Direct3D 760
40.3小結 766
第Ⅵ部分附錄
附錄A有用的控制項屬性、方法和
事件 769
附錄B變數聲明和數據類型 779
附錄C運算符 787
附錄D子例程和函式聲明 793
附錄E控制語句 797
附錄F錯誤處理 803
附錄GWindows窗體控制項和組件 805
附錄HWPF控制項 875
附錄IVisualBasicPowerPacks 881
附錄J窗體對象 885
附錄K類和結構體 897
附錄LLINQ 901
附錄M泛型 909
附錄N圖形 913
附錄O有用的異常類 923
附錄P日期和時間格式指示符 927
附錄Q其他格式指示符 931
附錄RApplication類 935
附錄SMy名稱空間 939
附錄T流 953
附錄U檔案系統類 959
附錄V示例索引 973