亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        二級(jí)VB輔導(dǎo):VB中自動(dòng)提示保存修改后的文件

        字號(hào):

        RichTextBox控件支持文本文件和RTF格式文件,在VB中經(jīng)常用來(lái)顯示文件內(nèi)容。當(dāng)用來(lái)編輯文件時(shí),我們希望程序?qū)ξ募男薷淖龀龇磻?yīng),提醒用戶是否保存這些修改。
            1 任務(wù)與要求
            如圖1所示,一個(gè)窗體內(nèi)有一個(gè)文件列表(File1)和一個(gè)文本顯示控件(RichTextBox1)。當(dāng)單擊文件列表(File1)內(nèi)的文件時(shí),其內(nèi)容顯示在下方的文本顯示控件(RichTextBox1)內(nèi)。如果用戶對(duì)文本內(nèi)容進(jìn)行了改動(dòng),則在轉(zhuǎn)向其它文件時(shí)(單擊文件列表內(nèi)的其它文件或單擊右上角的“關(guān)閉”按鈕),要求程序給出提示,詢問(wèn)用戶是否保存更改,如圖2所示。如果用戶回答“是”,由保存更改,否則保持原文件不變。
            
            圖 1 文件顯示
             
            圖 2 保存文件提示
            
            另外,要求在用戶做出選擇并完成操作后,文本顯示控件(RichTextBox1)內(nèi)顯示的內(nèi)容應(yīng)為用戶剛才想要看的新內(nèi)容。也就是說(shuō),保存文件的過(guò)程不影響最近命令的執(zhí)行,這樣比較符合人們的操作習(xí)慣。
            要想實(shí)現(xiàn)上述功能,就是要解決以下問(wèn)題。
            (1)如何判斷文件是否改動(dòng)過(guò)?
            (2)如何同時(shí)實(shí)現(xiàn)新文件的顯示與舊文件的保存?
            (3)如何判斷修改的開(kāi)始與結(jié)束?
            2 過(guò)程分析
            2.1 文件被改動(dòng)的充分條件
            文件被改動(dòng)時(shí),典型的特征是引起該控件(RichTextBox1)的Change事件發(fā)生;但是,這一特征不具有性。當(dāng)單擊File1中的其它文件時(shí),RichTextBox1會(huì)顯示相應(yīng)的文件內(nèi)容,同時(shí)也會(huì)引起該控件的Change事件發(fā)生。為了區(qū)分開(kāi)Change事件發(fā)生到底由誰(shuí)引起,需要增加額外的判斷條件GotForcus。
            如果文本顯示控件(RichTextBox1)沒(méi)有獲得焦點(diǎn)就直接發(fā)生了Change事件,則一定是由于轉(zhuǎn)換文件所引起的。如果該控件在GotForcus事件發(fā)生之后才發(fā)生Change事件,則一定是由于對(duì)文件進(jìn)行編輯所引起的。由此可以確定文件被改動(dòng)的充分條件是:文本顯示控件RichTextBox1首先獲得焦點(diǎn),然后發(fā)生Change事件(Change事件可以發(fā)生一次,也可以發(fā)生多次),這樣,我們就可以借助文本顯示控件的兩個(gè)事件,來(lái)判斷文件是否被改動(dòng)。
            2.2 新文件的顯示與修改后的文件的保存
            新文件的顯示需要占用文本顯示控件RichTextBox1,改動(dòng)過(guò)但未保存的舊文件必須有一個(gè)臨時(shí)存放容器,的辦法是使用另一個(gè)文本顯示控件RichTextBox2,此控件沒(méi)有必要顯示在前臺(tái),設(shè)為隱藏屬性即可。
            2.3修改的開(kāi)始與結(jié)束
            文本顯示控件(RichTextBox1)獲得焦點(diǎn),引起該控件的GotForcus事件發(fā)生,可作為修改的開(kāi)始。此時(shí)應(yīng)記下文件的相關(guān)信息,如文件名、文件的絕對(duì)路徑等,以備保存時(shí)使用。
            RichTextBox1控件發(fā)生了獲得焦點(diǎn)事件之后,又發(fā)生了的Change事件,則表明該文件已經(jīng)被修改。
            當(dāng)點(diǎn)擊其他控件(假如有的話)時(shí),文本顯示控件RichTextBox1將失去焦點(diǎn),引起該控件的LostFocus事件發(fā)生。結(jié)合之前發(fā)生的獲得焦點(diǎn)事件、Change事件,該LostFocus事件可作為文件修改結(jié)束的標(biāo)志。此時(shí)應(yīng)給出提示:是否保存修改過(guò)的文件。
            3 程序設(shè)計(jì)
            3.1 窗體設(shè)計(jì)
            建一個(gè)窗體Form1,上面放置文件列表控件File1、文件顯示控件RichTextBox1和臨時(shí)文件存放控件RichTextBox2,各控件的屬性如表1所示。
            表1 各控件的屬性
            控件名稱
               主要屬性
            Form1
               Caption = “提示保存修改”
            File1
               手動(dòng)調(diào)節(jié)至合適尺寸;Pattern = ”*.txt”
            RichTextBox1
               手動(dòng)調(diào)節(jié)至合適尺寸;Scrollbars = “2 – rtfvertical”
            RichTextBox2
               Visible = False
            3.2 過(guò)程設(shè)計(jì)
            新建一標(biāo)準(zhǔn)模塊Module1,定義4個(gè)全局變量:Mark1、Mark2、Cmnpath2和Name2。其中Mark1用來(lái)標(biāo)記RichTextBox1是否發(fā)生獲得焦點(diǎn)事件、Mark2用來(lái)標(biāo)記文本內(nèi)容是否被修改、Cmnpath2用來(lái)存放改變文件的絕對(duì)路徑,Name2用來(lái)存放改變文件的文件名。在公共模塊里建立一通用過(guò)程RTBA_LF00,用來(lái)完成保存文件的過(guò)程。