s5885934.jpg (33.49 KB)
下載附件
2013-7-2 00:36 上傳
版權說明:本文檔由用戶提供并上傳,僅供個人學習用途,若內容存在侵權,請聯系我們刪除。
Windows_Forms_2.0程序設計.pdf
(85.58 MB, 售價: 8 E幣)
2024-3-20 22:44 上傳
點擊文件名下載附件
售價: 8 E幣 [記錄]
[ 購買]
基本信息
原書名: Windows Forms 2.0 Programming (2nd Edition)
原出版社: Addison-Wesley Professional
作者: (美)Chris Sells Michael Weinhardt [作譯者介紹]
譯者: 汪泳
出版社:電子工業出版社
ISBN:9787121058684
上架時間:2008-4-8
出版日期:2008 年4月
開本:16開
頁碼:988
版次:1-1
1.png (319.55 KB)
下載附件
2023-7-22 15:29 上傳
內容簡介
如果你想開發優秀的windows forms 2.0應用程序,本書就是你書架上必不可少的參考書,它也是windows forms 2.0的最佳使用指南。全書包括19章和6個附錄,全面地講解了windows forms 2.0的各項技術,還深入地探討了各種類型應用程序的解決方案。在講解這些技術的同時,還列舉了與windows forms之前的版本不同的地方以及一些新增的內容。特別值得一提的是附錄中最后一部分講解的文檔管理功能,windows forms應用程序的開發人員可以使用它來搭建應用程序的架構。本書適合有.net背景知識的windows forms應用程序學習者閱讀,有經驗的windows forms開發人員也可以從中學到大量的高級技巧和內幕功能。由于本書講解的內容非常全面,本書還適合教學人員使用作為參考書。
作譯者回到頂部↑
本書提供作譯者介紹
Chris Sells是互聯系統部門的程序經理。他寫過幾本書,其中包括Programming Windows Presentation Foundation(O’Reilly)、Windows Forms Programming in C#(Addison-Wesley),以及ATL Internals(Addison-Wesley)。在他的閑暇時間,Chris主持著幾個會議并且在Microsoft內部產品團隊討論列表上擁有自己的一個列表。關于Chris和他的幾個項目的更多信息可以參見http://www.sellsbrothers.com。
Michael Weinhardt是Microsoft的程序員和作家,在Windows Client SDK部門供職。Michael與Chris一起..
目錄
第一章 你好,windows forms. 1
1.1 從頭開始學習windows forms 1
1.2 visual studio .net中的windows forms 6
1.3 布置控件 12
1.4 控件 15
1.5 應用程序設置 17
1.6 資源 21
1.7 對話框 24
1.8 繪圖 27
1.9 打印 29
1.10 數據綁定 30
1.11 多線程用戶界面 33
1.12 部署 35
1.13 本章小結 36
第二章 窗體 37
2.1 顯示窗體 37
擁有者窗體和附屬窗體 38
2.2 窗體生命周期 40
窗體打開階段 41
……………………
……………………
譯者序
毫無疑問,本書是迄今為止Windows Forms程序設計領域中最完整、最全面的一本書。.
Chris Sells 和 Michael Weinhardt的獨特的寫作手法,就像是有一位大師在旁邊向你娓娓道來,從編寫Windows Forms的入門基礎、控件的應用到完成各種類型的應用程序所需了解的技能的詳細講解,在內容的全面和細節的深入之間,他們找到了絕佳的平衡點。書中還提供了大量的代碼示例和截圖,一方面使得讀者可以很輕松地掌握開發Windows Forms應用程序所需的各種技能,另一方面讀者也可以將這些非常實用的代碼用于自己的開發項目中。
全書覆蓋了Windows Forms技術各個方面的重要概念,從窗體的基礎、控件的使用、數據綁定、數據驗證、組件和自定義控件到資源管理、本地化應用程序以及ClickOnce部署技術都有深入的探討。..
本書還有一個特點,作者將Windows Forms技術和Visual Studio 2005開發工具這對完美搭檔結合在一起講解,讓讀者可以充分地利用VS05提供的強大的功能,這在別的書籍上是找不到的。
如果你希望能夠開發高質量的成功的Windows Forms應用程序,并且希望利用到Windows Forms 2.0的絢麗多彩的新特性,本書絕對應該是不二之選。而且,我認為這應該會成為Windows Forms應用程序開發人員必不可少的參考書。當你在開發過程中碰到不清楚的問題時,它都可以作為你可靠的指南。
本書在翻譯過程中得到了博文視點工作人員的熱心幫助,在此向他們表示感謝。同時,我還要特別感謝我的妻子,沒有她的支持,本書的翻譯是不可能順利完成的。本書的內容非常豐富,由于時間倉促,技術水平有限,不足之處還望讀者一一指正。
汪 泳
2007年12月...
前言
Windows 1.0的程序員能夠做的事情很簡單。他們幾乎不能選擇實現程序的方法,可能有一個應用程序編程接口(API),也可能沒有,而且大多數時候都沒有。這意味著開發人員必需手工創建幾乎所有的東西。在那個時候,這還不是問題。所有的Windows程序員都碰到過相同的限制,所以大家的應用程序或多或少地都在與相同的受限功能集合打交道。.
另一方面,當時的Windows開發人員被淹沒在選擇的海洋中。Web的開發為我們帶來了靜態超文本標記語言(HTML)、通過ASP.NET實現基于服務器的用戶界面(UI)交互、通過ActiveX控件或AJAX(代表了幾樣東西) 實現客戶端的用戶界面交互。在客戶端,我們還有原生框架,如Microsoft基礎類庫(MFC)、活動模板庫(ATL)和被稱為Windows Presentation Foundation的下一代的托管框架庫(WPF是.NET框架下一個版本WinFX的一部分)。開發人員如何選擇呢?本書討論的Windows Forms 2.0話題在這些技術中位于什么樣的位置呢?
Windows上的客戶端技術提供了從支持跨平臺的技術到具有豐富特性的技術這個范圍中進行不同層次的選擇。跨平臺是用戶界面在不同的操作系統上都能夠運行的能力,而豐富性是用戶界面利用它運行的操作系統功能的能力。因此,即使靜態HTML幾乎在任何地方都可以運行,但是,如果HTML中使用了客戶端JScript,跨平臺的能力就縮減到那些支持腳本技術的瀏覽器中。另外一個就是ActiveX控件,它只能在Windows上運行,但支持所有的豐富特性。
在另外一個極端上,我們有WPF技術,它是在DirectX基礎上創建的一個全新的托管框架。WPF在一個單一的并且內聚的整體中包含了文檔、布局、動畫、2-D、3-D、文本和圖形等元素。這個框架提供了Microsoft創建的最豐富的客戶端技術,它最大程度地利用了它運行的平臺的能力,其中包括任何可用的硬件3-D圖形加速卡。然而,當撰寫本書時,WPF還沒有發布,它只能在Windows XP、Windows Server 2003和Windows Vista下運行。
Windows Forms 2.0還剩下多少空間可以發揮呢?它的豐富性不如WPF,但是比起HTML技術來說又豐富得多。Windows Forms 2.0的功能比Windows Forms 1.0也豐富了許多,其中包括大大增強的對靈活布局的支持、最新的菜單條和工具條控件、數據綁定、多線程、強類型資源和設置,以及最重要的ClickOnce部署。
有了ClickOnce技術,用戶第一次能夠和Web應用程序一樣輕松地部署Windows應用程序。而且更好的是,ClickOnce技術還允許Windows應用程序能夠在本地安裝、集成進Start菜單,并且在沒有網絡連接的情況下仍然可用。這些選項對于Web應用程序的用戶是不可用的。
因此,Windows Forms 2.0的特性還是很豐富的,但是在跨平臺方面呢?和Web應用程序不同,Windows Forms要求用戶機器運行Windows,明確地說,就是安裝了Windows 98或之后版本的PC機。然而,它還支持其他設備,例如Pocket PC或Smartphone,這是通過.NET Compact框架來實現的。這意味著我們可以編寫一個Windows Forms 2.0應用程序并在Windows智能手機上運行這個應用程序。
基于這一層次的豐富性和跨平臺特性,我們應該使用Windows Forms來創建哪種類型的應用程序呢?答案是,人們使用Windows Forms創建過幾乎所有類型的應用程序,其中包括生產力應用程序、工具軟件、企業工具軟件,甚至游戲。Windows Forms可以被用來創建小一點的軟件,例如Microsoft自己內部的人力資源應用程序(叫做HeadTrax),或者也可以被用來創建大一點的軟件,例如Visual Studio 2002版在Visual Studio開發工具之上創建的大多數用戶界面增強功能。之所以能夠創建這些類型的應用程序,是因為Windows Forms豐富的特性和工具、跨平臺性以及這個版本之后基于社區使用的和反饋的實現成熟度特性。
實際上,.NET開發人員社區非常喜歡Windows Forms,甚至到了質疑“早期的.NET是集中在基于Web的應用程序”這種說法的程度。基于我在培訓行業中的朋友和本書第1版的銷售情況,我認為,有大量的并且數量不斷增加的開發人員在編寫Windows Forms應用程序。正是為了這些開發人員,我們才編寫了本書。
誰應該閱讀這本書
Who Should Read This Book?
當編寫本書的時候,我們希望同時為已經在.NET中寫過程序的程序員和還沒有寫過程序的程序員提供實際的Windows Forms知識。因此,當每個核心的.NET話題出現時,我們都會做一個簡單的介紹。然而,我們并不試圖包括全部.NET框架的內容,它太龐大了。相反,當我們需要更多的有用信息的時候,會引用其他的提供了完整細節的文章。特別地,大家會發現我們大量地引用了由Don Box和Chris Selss所著的Essntial .NET一書,這是一本很好的補充讀物。同樣地,我們還推薦了由Ingo Rammer所著的Advance .NET Remoting一書和由Jeffrey Richter所著的Applied Microsoft .NET Framework Programming一書(關于這些書的更多細節,請參見“參考資料”)。
.NET的一個核心話題對Windows程序員具有特殊的意義,我們在附錄C“委托和事件”中詳細討論了這些內容。如果大家是.NET編程的初學者,這部分內容尤其重要。但是在學到Windows Forms的一些框架性知識之前,我們也不會推薦大家深入研究這一話題(這些框架性的知識可在第1章“你好,Windows Forms”中學到三分之一左右)。
我們提供了附錄B“從MFC轉移到Windows Forms”和附錄F“文檔管理”,這些內容對以前的MFC程序員(或者就快成為以前的)來說尤其重要。雖然Windows Forms沒有提供MFC的所有特性,但我們努力地在本書的材料和代碼示例中填補了這些缺陷。
另外一個值得注意的地方是:幾年前,一位作者編寫了他的第一個5天培訓課程。這個培訓課程的話題就是Windows 95,其中包括了需要花幾個小時對Windows 95的新控件的討論:控件的樣子、屬性、方法和事件以及如何訪問它們。這些時間對參與的人來說會覺得很長。某個特定控件的細節只有當我們在需要使用它的時候才令人感興趣,而且是在當真正需要使用控件的時候,控件的文本和Visual Studio的智能提示幫助功能很好地為我們提供了所需的信息。
因此,本書沒有完整地介紹任何標準控件。相反,如果某個控件在當前話題的場景下令人感興趣,我們就會相應地介紹那個控件,就像在第17章“應用數據綁定”中介紹DataGridView控件一樣。另外,為了列出所有的組件和控件,并對每個控件的主要功能做一介紹,附錄D“組件和控件概覽”提供了標準控件和組件的列表。我們不會浪費大家的時間去試圖提供比.NET框架的SDK和Visual Studio 2005內置的參考文檔還全面的內容。相反,本書專注于實際的開發場景,這些內容在別的地方是找不到的。最后,為了幫助大家理解組件和控件的區別以及如何創建它們,我們提供了第9章“組件”和第10章“控件”。
約定
Conventions
如果你決定嘗試閱讀本書,我們會感謝你對我們的信任并表達我們希望你能順利完成的心愿。為了幫助你閱讀本書,希望你了解我們使用的一些約定。
首先,貫穿全書都使用了一種指代模式(除了本部分)。因為Chris和Michael工作時聯系緊密并且努力斟酌書中的每句話,我“I”這個詞的使用實際上意味著“兩個作者”,而使用我們“we”實際上意味著“作者和讀者你”。雖然我們有時會直接使用“你”,但Chris和Michael傾向于使用“我們”這個詞。..
序言
很久很久以前,當我開始編寫PC上的用戶界面代碼時,還沒有現在這些很棒的框架。那時候的人們需要在case語句中編寫大量的C代碼,代碼的長度比巨人的汗衫還長。我曾經在我們創建的一個應用程序中花費了幾個星期去理解并實現DDE(是的,是DDE)(并且坦白地說,這并不是非常愉快的一次體驗),之后我在一本雜志中看到了一篇文章,它演示了一個叫做“Smalltalk”的很棒的東西——使用幾行代碼就能夠實現DDE了。我當時想:哇!真棒。這正是我喜歡的編程方式!從那以后,我使用它實現了很多的用戶界面框架,最終導致我在Microsoft有了份與Windows Forms相關的工作。.
對于Windows Forms的第一個版本來說,我們的目標是創建一個全面的用戶界面框架,這個框架可以將VB的易用性與MFC的可擴展性和靈活性結合在一起。在開發過程中,我們又加入了更多的目標,其中包括豐富的設計期擴展性、GDI+支持以及對部分信任環境下的無接觸部署(NTD)的支持。我相信我們已合理地實現了這些目標。盡管當我們第一次發布Windows Forms時,業界的焦點已經轉移到了Web上,現在還是有大量的程序員在使用Windows Forms創建各種類型的應用程序,從照片管理軟件到支持核心商業流程的應用程序。我發現看到人們使用Windows Forms創建有趣的應用程序是對我工作的最大獎賞。然而,說實話,還有些地方,我們可以做得更好。例如,Visual Studio 不支持NTD技術,并且當發生錯誤需要調試的時候可能會很復雜,所以總的來說,我會給Windows Forms的第一個版本做一個“顯示承諾”的評價。
Windows Forms 2.0試圖實現這樣的承諾。這是Windows Forms的一個重大改進。Windows Forms的設計期和運行時功能的幾乎所有部分都得到了改進。正如Chris和Michael在附錄A“Windows Forms 2.0”的新特性中所指出的,我們將全新的特性與對現存的特性的改進很好地結合在了一起(大約有329個新類型、139個更新過的類型以及14 323個新成員)。我不打算重復附錄A的內容,我將特別指出并說明是如何達到Windows Forms這個版本目標的三個新特性的:它們是部署問題的解決、更絢麗的應用程序和更高的開發效率。
部署
Deployment
我認為.NET框架2.0版的一個最重要的特性(不只是Windows Forms,而是整個.NET框架)就是ClickOnce。ClickOnce實現了無接觸部署的承諾,將容易的、可靠的、可管理的基于Web的部署方式帶給了客戶端應用程序。通過Web部署應用程序,在Visual Studio 2005中現在只需要使用向導一步步地設置就可以了。
絢麗的應用程序
Great-Looking Apps
從我加入Microsoft開始,顧客就一直要求具有內置的能夠創建與Microsoft Office相似的應用程序的功能,使用新的菜單條控件MenuStrip、工具條控件ToolStrip以及狀態條控件StatusStrip,我們在Windows Forms 2.0版中就能夠做到這一點。工具條控件不僅支持標準Windows和Office外觀,而且還可以自定義,使得它們看起來跟你所喜歡的樣子一樣。
開發效率..
Productivity
我們添加了一整套改進的設計期和運行時,相信通過這些改進,可以大大提高大家的開發效率。其中一個我最喜歡的新的設計器特性就是SnapLines,這允許我們在布局窗體時快速地對齊控件。只要用過具有SnapLines功能的設計器,我們就不想回到與設計器功能相同的IntelliSense上了。
未來
The Future
發布完Windows Forms 2.0之后,我們的思路自然地轉向了未來。預測未來是一件危險的事情。我孩提時的大多數預測都沒有兌現,所以我對做任何長期預測都有點不安。然而,基于我們已經做到的事情和希望能夠做到的事情,我可以發表一些看法。首先,對于.NET框架和托管代碼,我的看法如下:它是現在和未來都要用到的編程模型。學習如何使用.NET框架和Windows Forms是對未來的可靠投資。其次,為了解釋Samuel Clemens所說的話,“關于客戶端應用程序已死的報告被過分地夸大了,”我對客戶端應用程序的看法如下:客戶端應用程序現在可以和Web應用程序一樣容易被部署,提供了重大的商業價值,而且隨著時間推移還將提供更多的價值。第三,作為對Windows Forms技術的持續投資的一部分,我們將確保Windows Forms和那些如WinFx這樣的新的即將發布的技術能夠很好地結合在一起。這允許我們使用這種技術創建今天的應用程序,并且還將在未來使用Windows Forms和新技術來增強那些應用程序的功能。最后,從Windows Forms的角度來看,我相信我們需要擴大框架和設計體驗所提供的功能以支持創建客戶端應用程序的整個過程。我們已經擁有了強大的設計器幫助我們創建用戶界面,但是我們仍然需要編寫太多的代碼來創建整個應用程序。我希望看到我們能夠提供強大的基于設計器的整個應用程序的設計體驗,而不僅僅是為窗體提供設計器功能。
因此,希望我所說的關于Windows Forms至少讓你對發現本書中包含的更多內容感到有點好奇。本書第1版提供了對Windows Forms的杰出的概述和介紹方面的內容。第2版同樣如此。不管是第一次學習Windows Forms,還是僅僅希望獲得對2.0版本中所提供的新東西的了解,本書都將有助于你。它覆蓋了所有的重要的特性類別,從創建窗體的基礎知識、工具條框架和數據綁定,到ClickOnce部署技術。
本書在內容的權衡方面也做得很好:它既沒有忽略Visual Studio 2005的存在,也沒有將內容簡化到對Visual Studio 2005特性的簡化的“點擊這里然后點擊那里”這種類型的描述。本書不僅揭示了概念以及說明了在代碼中如何使用這些概念,而且還說明了設計器是如何通過自動生成代碼以幫助我們提高開發效率的。數據綁定部分的內容就是這種方式的一個很好的例子(第16章和第17章):它們不會太短以至于沒什么用,也不會太長以至于過于啰嗦。引用Alan Cooper的話來說,因為它們是“正確的”,所以它們是“黃金代碼”示例。
我希望特別強調一下數據綁定部分的章節(第16章和第17章),這不僅是因為我非常喜歡數據綁定,而且是因為本書在解釋數據綁定的工作原理以及如何有效地使用它這方面做得非常好。我還想強調一下編寫控件和組件等的設計期行為方面的章節(第11章和第12章),這是因為這個話題經常被忽視。這些章節也使得本書成為我的必讀之書。
因此,總的來說,本書不僅教會了大家如何有效地使用作為Windows Forms一部分的知識,而且還讓大家了解到編寫自己運行時和設計期擴展所需要了解的東西。
我將以一些致意和感謝的話作為我的結束。首先,感謝整個Windows Forms開發團隊,他們竭盡所能地工作從而創建和發布了我相信是非常偉大的一個產品。我對我們獲得的成就感到非常自豪。其次,要感謝Michael和Chris,他們不僅僅是編寫了一本書來解釋我們的產品并使得這個產品對我們的客戶來說更加容易使用,而且還為廣泛的Windows Forms社區做出了卓越的貢獻。感謝Michael在MSDN上發表的優秀文章以及對Windows Forms 2.0的反饋,尤其是對ToolStrip控件做出的反饋。感謝Chris對Windows Forms的幾乎無限的激情,撰寫的關于Windows Forms的優秀文章,對Windows Forms、MFC和Windows等技術的深入了解,以及他對產品各個方面的禮貌和有分寸但是熱心而且豐富的反饋。Mike和Chris在提升對產品的理解和幫助Windows Forms變得如此優秀等方面給予了我們巨大的幫助。最后,要感謝我們的客戶:Windows Forms 2.0中的所有特性都是基于你們的反饋來實現的。所以向所有花時間給予我們反饋和建議的人們表示感謝,請繼續支持我們!
媒體評論
總有些書的獨特內容是Internet上搜索不到的,那些書的作者擁有可以共享的真實體驗,并且書中的代碼可以用在正式的項目中。本書正是一本這樣的書。.
—NealMyrddin,獨立開發人員
Chris和Michael掌握了WindowsForms 2.0的靈魂。本書提供了對WindowsForms的設計以及與新的2.0特性的集成等內容的富有洞察力的見解。對于初學Windows Forms的程序員和經驗豐富的商業應用程序開發人員,本書都同樣適用。附錄“2.0中的新特性”也值得單獨拿出來推薦。
—MikeHarsh,微軟公司,WindowsForms程序經理
本書討論了一種范圍很廣并且深入的技術,并將它分解為容易理解的可管理的片段。如果想創建復雜的WinForms應用程序,離開本書你將無法生存。
—Ryan Dorrell,ASileThought,首席技術執行官
《Windows Forms 2.0程序設計》提供了所有.NET開發人員都需要的一些東西。有經驗的開發人員會喜歡本書中對新的2.0特性的深入的討論,其中包括對ClickOnce部署技術、多線程和無所不在的新的設計器集成功能的最全面的討論。初學WinForms程序設計的開發人員會喜歡本書對所有WinForms開發人員都需要知道的基礎知識的討論。不管是有經驗的WinForms開發人員,還是初學者都需要這本書。..
—Fritz Onion,Pluralsight公司的聯合創始人,Essential ASP.NET一書的作者,—ASP.NET最有價值專家
我不需要一本僅僅說明了WinForms組件的書。我可以在網上或其他書中獲得這些內容。我需要的是一本可以讓我避免犯錯誤的指南以及對常見問題的有創意的解決方案。這正是本書的閃光點。將本書第1版作為必不可少的參考書的所有人都會喜歡討論了WinForms 2.0功能的這一更新過的版本。
一Johan Ericsson,軟件工程師,Agilent Technologies公司
Chris Sells撰寫的書籍總是富有洞察力的,這本最新的書籍也不例外。本書尤其適合希望不僅了解WindowsForms2.0的漂亮界面,而且想了解它是如何與.NET環境相結合的人。讀者將會長時間地將本書放在他們的書桌上,而不是束之高閣。
—Yoshimatsu Fumiaki,住在日本東京的軟件工程師
本書將開發成功的Windows Forms應用程序所需了解的信息展示給大家,Chris和Mike為此做出了卓越的貢獻。
—Jessica Fosler,開發技術帶頭人,微軟公司
本書是WinForms2.0教學和參考的必備書籍。
—Jim Rittenhouse,高級軟件工程師,西門子公司...
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|