Visual Studio使用技巧(轉)
折疊代碼:
1、ctrl+M ctrl+H :隱藏選中的段落 2、ctrl+M ctrl+M :展開段落 選擇整個字符串: 在前雙引號前雙擊,或ctrl+單擊; 把代碼放入工具箱: 選中一段代碼,把代碼拖到工具箱的”常規(guī)”選項卡下面,然后可以重命名代碼段,以后往代碼區(qū)域拖入就可以了。 exm: /** * (C)Neusoft Company * Author :Hexuetao * Email :hexuetao@neusoft.com * Description : * */ 使用剪貼環(huán): Ctrl+shift+V :循環(huán)粘貼,直到找到你想要粘貼的內容為止。 復制、剪切、刪除、交換一行代碼: Ctrl+C :復制當前行; Ctrl+X :剪切當前行; Ctrl+L :刪除當前行; Alt+shift+T :交換當前行與下一行的位置; 用表格方式編輯XML: 在xml中,右鍵,查看數(shù)據(jù)網(wǎng)絡。 注:這種編輯模式在xml序列化的數(shù)據(jù)集時非常有用。編輯繼承關系更深的xml文件時會產(chǎn)生位置錯誤的寫滿了碎片。 視圖的切換: Ctrl+PgUp 、Ctrl+PgDn :用于切換html視圖和設計視圖,xml視圖和數(shù)據(jù)視圖 轉到定義后的后退、前進: 使用右鍵,可以”轉到定義”(方法)。 Ctrl+_ :后退 Ctrl+shift+_ :前進(前進需要,使用過鼠標右鍵的”轉到定義”之后才會有效果) 同一文件中創(chuàng)建分割窗口: 將同一個文件分成兩個窗口顯示,這樣可以通過第1個窗口看著文件的上半部分,同時通過第2個窗口操作著文件的下半部分。 通過拖動下圖中黑色線圈里面的小小矩形分割塊來實現(xiàn)。 將文件拖入VS.Net中打開: 將.txt文件拖入VS.Net中:用記事本打開; 將.doc文件拖入VS.Net中:用word打開; 將圖片拖入VS.Net中:用畫圖板打開; 將.pdf文件拖入VS.Net中:用Adobe reader代開 內建瀏覽器的使用: 使用vs.net內建的瀏覽器,調試、搜索東西的比較方便,不用再單獨去代開瀏覽器。 打開方法:ctrl+alt+R 主頁的設置:工具->選項->環(huán)境->web瀏覽器->主頁 類視圖關系的利用: Ctrl+shift+C:打開類視圖; 展開命名空間,在類或成員上,ctrl+c,即可提取該類或成員的完整的命名空間到剪貼板。 自定義調用堆棧: 堆棧跟蹤是vs.net一步步執(zhí)行程序時對當前方法調用繼承關系給出的直觀顯示。堆棧跟蹤會對一個有一個的方法嵌套調用給出記錄。堆棧跟蹤會將每個方法單獨顯示為一行,并帶有行號和參數(shù)值。每一個方法的調用稱為堆棧幀。 堆棧跟蹤的一個優(yōu)點在于你可以雙擊任意一行跳轉到程序中該層調用方法的代碼。于是你可以看到程序是如何執(zhí)行到這一位置的,同事可以看到方法接受的參數(shù)值。 在堆棧窗口中右鍵,可以對堆棧窗口進行一些自定義。 將vs.net與一個運行中的進程鏈接: 按下F5對程序調試時,vs.net會對項目進行生成。更好的方式是以調試模式啟動程序,即讓vs.net與運行的程序之間建立鏈接,從而進行調試。在vs.net2005中,就是”附加到進程”這個功能,這種功能對web程序非常有用。你可以首先用外部瀏覽器打開有問題的頁面,填寫好必要的表單,然后鏈接該進程開始調試工作。 開發(fā)ASP.NET的程序,主要是附加到w3p.exe進程。 特定異常才中斷: Ctrl+alt+E :打開”異常中斷選擇”窗口; 特定條件下中斷: 調試-窗口-斷點,打開斷點窗口,找到相應的斷點,右鍵,條件,即可是指特定的條件。 查看代碼定義: 視圖->代碼定義窗口。 只需將光標點到相應的類、方法等上面,稍等片刻,即可在代碼定義窗口中查看相應類、方法等的集體代碼。使用改方式,可以減少大量的”轉到定義”操作。 導入和導出編輯器設置: 將編輯器設置導出保存下來,下次換了機器可以將保存下來的配置文件導入,從而實現(xiàn)個人設置的保存、移動。 工具->導入和導出設置,根據(jù)提示即可操作。 逐個字符地循環(huán)訪問字符串: 字符串的特征是它總是具有字符數(shù)組的特征。 總是可以使用簡單foreach循環(huán)逐個字符地對一個字符進行循環(huán)訪問。 Foreach(char c in myString) { //…… } 也可以使用括號中的序數(shù)來指定字符串中的第幾個字符。 Char myChar=myString[n]; 將內聯(lián)字符串用作對象實例: 輸出一個字符串后,在后面跟一個點號,智能提示會為你顯示出字符串變量一樣所有可用的方法。 int n = "abcd".Length; 使用中間語言反編譯器來查看.net程序: 中間語言反編譯器(ildasm.exe): C:"Program Files"Microsoft Visual Studio 8"SDK"v2.0"Bin"ildasm.exe 使用該工具能夠看到程序集中定義的所有命名空間和類,也可以看到微軟中間代碼。 對ASP.NET web程序進行預編譯: 當使用vs.net編譯web程序時,所有的code-behind文件會被編譯到程序集之內。第一次訪問剛剛編譯完的網(wǎng)站時,ASP.NET引擎需要再次進行編譯,產(chǎn)生明顯的延遲,所以需要用工具進行預編譯,以消除第一次訪問的延遲。 方法一:訪問虛擬網(wǎng)址:http://localhost/MyWebApplication/preocmpile.axd 該虛擬網(wǎng)址具有一個http處理機制,它會遍歷你的web程序,對所有的頁面進行預編譯以消除延遲。 方法二:使用aspnet_compiler.exe來自動完成所有預編譯工作。 它位于C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727目錄下, 使用一下方式運行該工具: Aspnet_complier –v/MyWebApplication 這個命令會對整個程序進行預編譯。 為web程序設置ASP.NET版本: IISà虛擬目錄à屬性àASP.NET選項卡àASP.NET Version 手動清除系統(tǒng)緩存: C:"WINDOWS"Microsoft.NET"Framework"v1.1.4322"gacutil.exe –cdl 再次拋出同樣的異常: 如果一個異常要被記入日志,開發(fā)者通常會: try { //… } catch(Exception ex){ Log(ex); Throw(ex); } 這樣的代碼是可以的,再次拋出的異常不會被忽略,但:重新拋出異常會是vs.net清空異常堆棧跟蹤,也就是說堆棧跟蹤屬性里面的catch部分只會記錄該異常的第一次拋出時間。 要在catch部分正確地拋出同一個異常,使用throw就可以了。 try { //… } catch(Exception ex){ Log(ex); Throw; } 這樣就可以重新拋出異常,且不會在監(jiān)視過程中清空堆棧跟蹤。 我們每天都使用VS.Net進行C/S系統(tǒng)、B/S系統(tǒng)、Smart-Client應用的開發(fā),無論你是熟練的程序員還是剛學.net的新手,都是安裝了VS.Net進行開發(fā),但你有沒有想過怎樣利用工具提供的一些便利功能,來提高我們工作的質量和效率呢。本文收集了VS.Net中一些淺為人知的技巧與功能,希望能對幫助你更好的利用工具。 1. 快速切換選項卡 在應用的開發(fā)中,我們常常會開打多個窗體設計器、類文件與其它類型的文件,文件一多用鼠標切換時通常要進行點擊幾次,可能通過快捷鍵Ctrl+Tab或Shift+Ctrl+ Tab進行切換。也可以通過拖拽文件的標題對其進行重新排列。
2. 多文件查看 在VS.Net中,你可以同時查看兩或多個文件,只需在打開選項卡中把想要查看的文件拖至IDE的右邊或下邊,你就可以垂直或水平平鋪的方式查看文檔。
![]() 3. 查看同一文檔的不同部分 當需要對同一文檔的不同部分代碼的時候,我們可以通過拆分代碼窗口來查看代碼的不同部分。將鼠標移動到代碼窗口右上角滾動條的上方,出現(xiàn)雙向箭頭時向下拖至你想拆分的位置,現(xiàn)在可以通過移動滾動條來查看代碼的不同部分。
![]()
在編寫代碼時,有一些常用的代碼片斷會在不同的項目或解決方案中重復使用,如文件創(chuàng)建說明、數(shù)據(jù)庫連接字串等??梢允褂霉ぞ呦淅靡韵路椒ㄟM行重用:
選擇要復用的代碼片斷;
將選擇的代碼拖到工具箱的常規(guī)卡,工具箱在會顯示“文本……”(可以右鍵點
使用時,在插入代碼的位置單擊鼠標,然后在工具箱上雙擊要插入的代碼(也可以把代碼片斷拖至要插入的位置)。
![]() 5. 使用漸進式搜索 代碼的搜索方法,VS.Net可以使用編輯菜單中的“搜索”進行特定字符串的搜索,也可以使用“查找符號”來查找特定的方法或屬性,但“漸進式搜索”可能就少有人知了,“漸進式搜索”可以根據(jù)你鍵入的字符中在當前打開的代碼中進行查找。使用快捷方式Ctrl+I,在代碼窗口出現(xiàn)一個向下的箭頭加望遠鏡圖案,IDE下面的狀態(tài)欄顯示“漸進式搜索”字樣,鍵入要查找的字符,自動定位至字符出現(xiàn)的位置,查找下一個字符出現(xiàn)位置可以再按Ctrl+I,上一個字符出現(xiàn)位置可以按Shift+Ctrl+I繼續(xù)進行查找。
我們知道,要在應用程序中使用事件,必須提供一個事件處理程序(事件處理方法),這通常用委托來實現(xiàn)。但當想對某個容器中的同類控件的相同事件都實現(xiàn)相同的處理方法時,可能通過枚舉容器中的控件并指定相關委托來實現(xiàn)事件的處理?;蛟S你會說,干嗎要說得這么復雜,我可以在控件的屬性中指定事件處理方法來實現(xiàn),但當容器中的控件很多,或者在設計過程中加入了新的控件,逐個指定畢竟是很麻煩的一件事。
如下圖所示,在應用中有兩個文本框,我想指定兩個文本框(用戶名與密碼)的Enter、Leave與Validating事件,當文本框獲得焦點時改變其背景色,當離開時還原為系統(tǒng)文本顏色,并用Validating方法檢查文本框內容是否為空,為空時用ErrorProvider顯示錯誤信息。
![]() 我通過方法AddEventHandler來枚舉窗體中的控件,當它是文本框時指定事件的委托,代碼如下:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 然后在Form1的構造函數(shù)中增加AddEventHandler(this)語句:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 程序運行時文本框獲得焦點時顯示不同的背景色:
![]() 失去焦點時如果文本框內容長度為零,顯示提示信息:
![]() 同樣的道理,你可以使用上面的方法對容器中的其它控件指定不同的事件處理方法
![]() |
|
來自: Mike Lee > 《.net frame work》