小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Visual Studio使用技巧(轉(zhuǎn))

 Mike Lee 2010-10-21

Visual Studio使用技巧(轉(zhuǎn))

折疊代碼:

1、ctrl+M        ctrl+H       :隱藏選中的段落

2、ctrl+M        ctrl+M      :展開段落

選擇整個(gè)字符串:

         在前雙引號前雙擊,或ctrl+單擊;

把代碼放入工具箱:

         選中一段代碼,把代碼拖到工具箱的常規(guī)選項(xiàng)卡下面,然后可以重命名代碼段,以后往代碼區(qū)域拖入就可以了。

exm:

    /**

     * (C)Neusoft Company

     * Author       :Hexuetao

     * Email        :hexuetao@neusoft.com

     * Description 

     * */

使用剪貼環(huán):

         Ctrl+shift+V     :循環(huán)粘貼,直到找到你想要粘貼的內(nèi)容為止。

復(fù)制、剪切、刪除、交換一行代碼:

         Ctrl+C       :復(fù)制當(dāng)前行;

         Ctrl+X       :剪切當(dāng)前行;

         Ctrl+L       :刪除當(dāng)前行;

         Alt+shift+T       :交換當(dāng)前行與下一行的位置;

用表格方式編輯XML

         xml中,右鍵,查看數(shù)據(jù)網(wǎng)絡(luò)。

         這種編輯模式在xml序列化的數(shù)據(jù)集時(shí)非常有用。編輯繼承關(guān)系更深的xml文件時(shí)會產(chǎn)生位置錯(cuò)誤的寫滿了碎片。

視圖的切換:

         Ctrl+PgUp Ctrl+PgDn :用于切換html視圖和設(shè)計(jì)視圖,xml視圖和數(shù)據(jù)視圖

轉(zhuǎn)到定義后的后退、前進(jìn):

         使用右鍵,可以轉(zhuǎn)到定義(方法)。

         Ctrl+_       :后退

         Ctrl+shift+_      :前進(jìn)(前進(jìn)需要,使用過鼠標(biāo)右鍵的轉(zhuǎn)到定義之后才會有效果)

同一文件中創(chuàng)建分割窗口:

         將同一個(gè)文件分成兩個(gè)窗口顯示,這樣可以通過第1個(gè)窗口看著文件的上半部分,同時(shí)通過第2個(gè)窗口操作著文件的下半部分。

         通過拖動下圖中黑色線圈里面的小小矩形分割塊來實(shí)現(xiàn)。

將文件拖入VS.Net中打開:

         .txt文件拖入VS.Net中:用記事本打開;

         .doc文件拖入VS.Net中:用word打開;

         將圖片拖入VS.Net中:用畫圖板打開;

         .pdf文件拖入VS.Net中:用Adobe reader代開

內(nèi)建瀏覽器的使用:

         使用vs.net內(nèi)建的瀏覽器,調(diào)試、搜索東西的比較方便,不用再單獨(dú)去代開瀏覽器。

         打開方法:ctrl+alt+R

         主頁的設(shè)置:工具->選項(xiàng)->環(huán)境->web瀏覽器->主頁

類視圖關(guān)系的利用:

         Ctrl+shift+C:打開類視圖;

         展開命名空間,在類或成員上,ctrl+c,即可提取該類或成員的完整的命名空間到剪貼板。

自定義調(diào)用堆棧:

         堆棧跟蹤是vs.net一步步執(zhí)行程序時(shí)對當(dāng)前方法調(diào)用繼承關(guān)系給出的直觀顯示。堆棧跟蹤會對一個(gè)有一個(gè)的方法嵌套調(diào)用給出記錄。堆棧跟蹤會將每個(gè)方法單獨(dú)顯示為一行,并帶有行號和參數(shù)值。每一個(gè)方法的調(diào)用稱為堆棧幀。

         堆棧跟蹤的一個(gè)優(yōu)點(diǎn)在于你可以雙擊任意一行跳轉(zhuǎn)到程序中該層調(diào)用方法的代碼。于是你可以看到程序是如何執(zhí)行到這一位置的,同事可以看到方法接受的參數(shù)值。

         在堆棧窗口中右鍵,可以對堆棧窗口進(jìn)行一些自定義。

vs.net與一個(gè)運(yùn)行中的進(jìn)程鏈接:

         按下F5對程序調(diào)試時(shí),vs.net會對項(xiàng)目進(jìn)行生成。更好的方式是以調(diào)試模式啟動程序,即讓vs.net與運(yùn)行的程序之間建立鏈接,從而進(jìn)行調(diào)試。在vs.net2005中,就是附加到進(jìn)程這個(gè)功能,這種功能對web程序非常有用。你可以首先用外部瀏覽器打開有問題的頁面,填寫好必要的表單,然后鏈接該進(jìn)程開始調(diào)試工作。

         開發(fā)ASP.NET的程序,主要是附加到w3p.exe進(jìn)程。

特定異常才中斷:

         Ctrl+alt+E :打開異常中斷選擇窗口;

特定條件下中斷:

         調(diào)試-窗口-斷點(diǎn),打開斷點(diǎn)窗口,找到相應(yīng)的斷點(diǎn),右鍵,條件,即可是指特定的條件。

查看代碼定義:

         視圖->代碼定義窗口。

只需將光標(biāo)點(diǎn)到相應(yīng)的類、方法等上面,稍等片刻,即可在代碼定義窗口中查看相應(yīng)類、方法等的集體代碼。使用改方式,可以減少大量的轉(zhuǎn)到定義操作。

導(dǎo)入和導(dǎo)出編輯器設(shè)置:

         將編輯器設(shè)置導(dǎo)出保存下來,下次換了機(jī)器可以將保存下來的配置文件導(dǎo)入,從而實(shí)現(xiàn)個(gè)人設(shè)置的保存、移動。

         工具->導(dǎo)入和導(dǎo)出設(shè)置,根據(jù)提示即可操作。

逐個(gè)字符地循環(huán)訪問字符串:

         字符串的特征是它總是具有字符數(shù)組的特征。

         總是可以使用簡單foreach循環(huán)逐個(gè)字符地對一個(gè)字符進(jìn)行循環(huán)訪問。

Foreach(char c in myString)

{

     //……

}

也可以使用括號中的序數(shù)來指定字符串中的第幾個(gè)字符。

Char myChar=myString[n];

將內(nèi)聯(lián)字符串用作對象實(shí)例:

         輸出一個(gè)字符串后,在后面跟一個(gè)點(diǎn)號,智能提示會為你顯示出字符串變量一樣所有可用的方法。

int n = "abcd".Length;

使用中間語言反編譯器來查看.net程序:

    中間語言反編譯器(ildasm.exe):

C:"Program Files"Microsoft Visual Studio 8"SDK"v2.0"Bin"ildasm.exe

使用該工具能夠看到程序集中定義的所有命名空間和類,也可以看到微軟中間代碼。

ASP.NET web程序進(jìn)行預(yù)編譯:

當(dāng)使用vs.net編譯web程序時(shí),所有的code-behind文件會被編譯到程序集之內(nèi)。第一次訪問剛剛編譯完的網(wǎng)站時(shí),ASP.NET引擎需要再次進(jìn)行編譯,產(chǎn)生明顯的延遲,所以需要用工具進(jìn)行預(yù)編譯,以消除第一次訪問的延遲。

方法一:訪問虛擬網(wǎng)址:http://localhost/MyWebApplication/preocmpile.axd

該虛擬網(wǎng)址具有一個(gè)http處理機(jī)制,它會遍歷你的web程序,對所有的頁面進(jìn)行預(yù)編譯以消除延遲。

方法二:使用aspnet_compiler.exe來自動完成所有預(yù)編譯工作。

它位于C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727目錄下,

使用一下方式運(yùn)行該工具:

Aspnet_complier v/MyWebApplication

這個(gè)命令會對整個(gè)程序進(jìn)行預(yù)編譯。

web程序設(shè)置ASP.NET版本:

    IISà虛擬目錄à屬性àASP.NET選項(xiàng)卡àASP.NET Version

手動清除系統(tǒng)緩存:

    C:"WINDOWS"Microsoft.NET"Framework"v1.1.4322"gacutil.exe cdl

再次拋出同樣的異常:

    如果一個(gè)異常要被記入日志,開發(fā)者通常會:

try

{

    //

}

catch(Exception ex){

    Log(ex);

Throw(ex);

}

這樣的代碼是可以的,再次拋出的異常不會被忽略,但:重新拋出異常會是vs.net清空異常堆棧跟蹤,也就是說堆棧跟蹤屬性里面的catch部分只會記錄該異常的第一次拋出時(shí)間。

要在catch部分正確地拋出同一個(gè)異常,使用throw就可以了。

try

{

    //

}

catch(Exception ex){

    Log(ex);

Throw;

}

這樣就可以重新拋出異常,且不會在監(jiān)視過程中清空堆棧跟蹤。


我們每天都使用VS.Net進(jìn)行C/S系統(tǒng)、B/S系統(tǒng)、Smart-Client應(yīng)用的開發(fā),無論你是熟練的程序員還是剛學(xué).net的新手,都是安裝了VS.Net進(jìn)行開發(fā),但你有沒有想過怎樣利用工具提供的一些便利功能,來提高我們工作的質(zhì)量和效率呢。本文收集了VS.Net中一些淺為人知的技巧與功能,希望能對幫助你更好的利用工具。

1.   快速切換選項(xiàng)卡

    在應(yīng)用的開發(fā)中,我們常常會開打多個(gè)窗體設(shè)計(jì)器、類文件與其它類型的文件,文件一多用鼠標(biāo)切換時(shí)通常要進(jìn)行點(diǎn)擊幾次,可能通過快捷鍵Ctrl+Tab或Shift+Ctrl+ Tab進(jìn)行切換。也可以通過拖拽文件的標(biāo)題對其進(jìn)行重新排列。

2.   多文件查看

    在VS.Net中,你可以同時(shí)查看兩或多個(gè)文件,只需在打開選項(xiàng)卡中把想要查看的文件拖至IDE的右邊或下邊,你就可以垂直或水平平鋪的方式查看文檔。  
 
 
 

3.   查看同一文檔的不同部分

    當(dāng)需要對同一文檔的不同部分代碼的時(shí)候,我們可以通過拆分代碼窗口來查看代碼的不同部分。將鼠標(biāo)移動到代碼窗口右上角滾動條的上方,出現(xiàn)雙向箭頭時(shí)向下拖至你想拆分的位置,現(xiàn)在可以通過移動滾動條來查看代碼的不同部分。  
   

 
4.   管理重復(fù)使用的代碼片斷

    在編寫代碼時(shí),有一些常用的代碼片斷會在不同的項(xiàng)目或解決方案中重復(fù)使用,如文件創(chuàng)建說明、數(shù)據(jù)庫連接字串等??梢允褂霉ぞ呦淅靡韵路椒ㄟM(jìn)行重用:
    選擇要復(fù)用的代碼片斷;
    將選擇的代碼拖到工具箱的常規(guī)卡,工具箱在會顯示“文本……”(可以右鍵點(diǎn) 擊從菜單中選擇重名命名進(jìn)行改名);
    使用時(shí),在插入代碼的位置單擊鼠標(biāo),然后在工具箱上雙擊要插入的代碼(也可以把代碼片斷拖至要插入的位置)。
 
 

5.   使用漸進(jìn)式搜索

    代碼的搜索方法,VS.Net可以使用編輯菜單中的“搜索”進(jìn)行特定字符串的搜索,也可以使用“查找符號”來查找特定的方法或?qū)傩?,?#8220;漸進(jìn)式搜索”可能就少有人知了,“漸進(jìn)式搜索”可以根據(jù)你鍵入的字符中在當(dāng)前打開的代碼中進(jìn)行查找。使用快捷方式Ctrl+I,在代碼窗口出現(xiàn)一個(gè)向下的箭頭加望遠(yuǎn)鏡圖案,IDE下面的狀態(tài)欄顯示“漸進(jìn)式搜索”字樣,鍵入要查找的字符,自動定位至字符出現(xiàn)的位置,查找下一個(gè)字符出現(xiàn)位置可以再按Ctrl+I,上一個(gè)字符出現(xiàn)位置可以按Shift+Ctrl+I繼續(xù)進(jìn)行查找。
 



6.   枚舉容器中的控件,實(shí)現(xiàn)控件事件處理

    我們知道,要在應(yīng)用程序中使用事件,必須提供一個(gè)事件處理程序(事件處理方法),這通常用委托來實(shí)現(xiàn)。但當(dāng)想對某個(gè)容器中的同類控件的相同事件都實(shí)現(xiàn)相同的處理方法時(shí),可能通過枚舉容器中的控件并指定相關(guān)委托來實(shí)現(xiàn)事件的處理。或許你會說,干嗎要說得這么復(fù)雜,我可以在控件的屬性中指定事件處理方法來實(shí)現(xiàn),但當(dāng)容器中的控件很多,或者在設(shè)計(jì)過程中加入了新的控件,逐個(gè)指定畢竟是很麻煩的一件事。
    如下圖所示,在應(yīng)用中有兩個(gè)文本框,我想指定兩個(gè)文本框(用戶名與密碼)的Enter、Leave與Validating事件,當(dāng)文本框獲得焦點(diǎn)時(shí)改變其背景色,當(dāng)離開時(shí)還原為系統(tǒng)文本顏色,并用Validating方法檢查文本框內(nèi)容是否為空,為空時(shí)用ErrorProvider顯示錯(cuò)誤信息。
 
 
    我通過方法AddEventHandler來枚舉窗體中的控件,當(dāng)它是文本框時(shí)指定事件的委托,代碼如下:
    /// <summary>
        
/// 枚舉容器中的控件,并增加文本框的事件處理委托
        
/// </summary>
        
/// <param name="pnl">container</param>

        private void AddEventHandler(Control pnl)
        
{
            
foreach(Control ctrl in pnl.Controls)
            
{
                
if(ctrl is TextBox)
                
{
                    ctrl.Enter
+=new EventHandler(this.txt_Enter);
                    ctrl.Leave
+=new EventHandler(this.txt_Leave);
                    ctrl.TextChanged
+=new EventHandler(this.txt_TextChanged);
                    ctrl.Validating
+=new CancelEventHandler(this.txt_Validating);
                }

                
if(ctrl.HasChildren)
                    AddEventHandler(ctrl);
            }

        }



        
/// <summary>
        
/// 實(shí)現(xiàn)文本框的Enter事件處理方法
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void txt_Enter(object sender,System.EventArgs e)
        
{
            TextBox tb
=(TextBox)sender;
            tb.BackColor
=Color.BlanchedAlmond;
        }


        
/// <summary>
        
/// 實(shí)現(xiàn)文本框的Leave事件處理方法
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void txt_Leave(object sender,System.EventArgs e)
        
{
            TextBox tb
=(TextBox)sender;
            
            tb.BackColor
=Color.FromKnownColor(KnownColor.Window);
        }


        
/// <summary>
        
/// 實(shí)現(xiàn)文本框的Validating事件處理方法
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void txt_Validating(object sender,System.ComponentModel.CancelEventArgs e)
        
{
            TextBox tb
=(TextBox)sender;
            errorProvider1.SetError(tb,
"");
            
if(tb.Text.Length==0)
            
{
                errorProvider1.SetError(tb,
"Please input any text!");
                tb.Focus();
            }

        }

然后在Form1的構(gòu)造函數(shù)中增加AddEventHandler(this)語句:

    public Form1()
        
{
            
//
            
// Windows 窗體設(shè)計(jì)器支持所必需的
            
//
            InitializeComponent();
        
            AddEventHandler(
this);
        }

程序運(yùn)行時(shí)文本框獲得焦點(diǎn)時(shí)顯示不同的背景色: 
 

失去焦點(diǎn)時(shí)如果文本框內(nèi)容長度為零,顯示提示信息:


同樣的道理,你可以使用上面的方法對容器中的其它控件指定不同的事件處理方法。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多