




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第四講 Windows界面程序設(shè)計簡介本講涉及的控件有:菜單、工具條、狀態(tài)欄、分頁控件、系統(tǒng)對話框(打開對話框、保存對話框、預(yù)覽對話框、打印對話框、打印設(shè)置對話框、顏色對話框、字體對話框)、用戶自定義對話框等。1 功能設(shè)計1.1 文件新建:新建一個編輯窗口;打開:彈出打開對話框,打開一個指定的文本文件;保存:如果當(dāng)前有文件名,就保存當(dāng)前編輯的文本文件,如果沒有文件名,彈出保存對話框,保存當(dāng)前編輯的文本文件;另存為:彈出保存對話框,將當(dāng)前編輯的文本文件以指定的另一個文件名存盤;退出:結(jié)束當(dāng)前編輯的文本文件,退出系統(tǒng);1.2 編輯剪切:剪切選定內(nèi)容,并放到剪切板;復(fù)制:復(fù)
2、制選定內(nèi)容,并放到剪切板;粘貼:將剪切板的內(nèi)容插入到當(dāng)前位置;撤消:撤消上次操作;恢復(fù):恢復(fù)上次操作;查找:?替換:?1.3 格式字體:彈出字體對話框,設(shè)置選定文本的字體;顏色:彈出顏色對話框,設(shè)置選定文本的顏色;左對齊:當(dāng)前段文本左對齊;中對齊:當(dāng)前段文本中對齊;右對齊:當(dāng)前段文本右對齊;縮進(jìn):當(dāng)前段文本懸掛縮進(jìn);1.4 打印預(yù)覽:預(yù)覽編輯器中的內(nèi)容;打?。捍蛴【庉嬈髦械膬?nèi)容;設(shè)置:設(shè)置默認(rèn)打印頁面;2 功能實現(xiàn)2.1 建立項目解決方案(ChA201 文本文件編輯器),項目名稱(Editor),窗體文件(frmEditor);測試結(jié)果:2.2 設(shè)計窗體控件屬性屬性值說明FormNamefrm
3、EditorText文本文件編輯器Font宋體,五號MenuStripNamemsEditor菜單條ToolStripMenuItemNamemnFile文件菜單Text文件ToolStripMenuItemNamemiFileNewText新建ToolStripMenuItemNamemiFileOpenText打開ToolStripMenuItemNamemiFileSaveText保存ToolStripMenuItemNamemiFileSaveAsText另存為ToolStripMenuItemNamemiFileExitText退出ToolStripMenuItemNamemnEdi
4、t編輯菜單Text編輯ToolStripMenuItemNamemiEditCutText剪切ToolStripMenuItemNamemiEditCopyText復(fù)制ToolStripMenuItemNamemiEditPasteText粘貼ToolStripMenuItemNamemiEditUnDoText撤消ToolStripMenuItemNamemiEditReDoText恢復(fù)ToolStripMenuItemNamemiEditFindText查找ToolStripMenuItemNamemiEditReplaceText替換ToolStripMenuItemNamemnStyl
5、e格式菜單Text格式ToolStripMenuItemNamemiStyleFontText字體ToolStripMenuItemNamemiStyleColorText顏色ToolStripMenuItemNamemiStyleAlignLeftText左對齊ToolStripMenuItemNamemiStyleAlignCenterText中對齊ToolStripMenuItemNamemiStyleAlignRightText右對齊ToolStripMenuItemNamemiStyleIndentText縮進(jìn)ToolStripMenuItemNamemnPrint打印菜單Text打
6、印ToolStripNametsEditor工具條StatusStripNamessEditor狀態(tài)條RichTextBoxNamertbEditor富格式文本編輯器DockFillOpenFileDialogNamedlgOpen打開文件對話框PrintDocumentNamedocPrint打印文檔控件測試:2.3 文件功能實現(xiàn)在frmEditor類的開始定義一個數(shù)據(jù)成員_fileName,用于保存當(dāng)前正在編輯的文件名。 public partial class frmEditor : Form private string _fileName; / 編輯的當(dāng)前文件名 public frm
7、Editor() InitializeComponent(); . 2.3.1 退出實際上就是退出應(yīng)用程序。 private void miFileExit_Click(object sender, EventArgs e) Application.Exit(); 2.3.2 新建文件實際上就是將rtbEditor中的內(nèi)容清空,同時將當(dāng)前正在編輯的文件名也設(shè)置為空。 private void miFileNew_Click(object sender, EventArgs e) rtbEditor.Text = "" _fileName = "" 2.3
8、.3 打開文件設(shè)置文件打開對話框的過濾參數(shù),即:Filter=文本文件(*.txt)|*.txt|所有文件(*.*)|*.*,然后彈出一個打開對話框,用戶指定一個文件,然后將文件的內(nèi)容讀入到rtbEditor中。 private void miFileOpen_Click(object sender, EventArgs e) dlgOpen.Filter = "文本文件(*.txt)|*.txt|富格式文件(*.rtf)|*.rtf|所有文件(*.*)|*.*" if (dlgOpen.ShowDialog() = DialogResult.OK) _fileName =
9、 dlgOpen.FileName; if (Path.GetExtension(_fileName) = ".rtf") rtbEditor.LoadFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.LoadFile(_fileName, RichTextBoxStreamType.PlainText); 測試:選擇菜單“文件 | 打開”時,彈出一個文件打開對話框,初始的路徑為“我的文檔”。思考題:?如何指定打開對話框默認(rèn)的路徑?2.3.4 保存文件文本編輯器類frmEditor有一個數(shù)據(jù)成員_
10、fileName,用于保存當(dāng)前正在編輯的文件名,新建文件時,設(shè)置_fileName為空。選擇“保存”菜單時,如果_fileName為空,動態(tài)創(chuàng)建一個保存對話框(默認(rèn)擴展名、默認(rèn)文件夾、默認(rèn)文件類型),由用戶指定保存的文件名,將編輯器中的內(nèi)容保存到指定的文件中,然后修改_fileName。 private void miFileSave_Click(object sender, EventArgs e) / 如果文件名為空,表示是新文件,保存時需要用戶指定文件名 if (_fileName = "") / 動態(tài)創(chuàng)建一個文件保存對話框 SaveFileDialog dlgSav
11、e = new SaveFileDialog(); / 設(shè)置保存對話框的默認(rèn)參數(shù) dlgSave.InitialDirectory = "c:tmp" dlgSave.Filter = "文本文件(*.txt)|*.txt|富格式文件(*.rtf)|*.rtf|所有文件(*.*)|*.*" dlgSave.Title = "保存我的文件" / 顯示保存對話框 if (dlgSave.ShowDialog() = DialogResult.OK) / 表示按下“確認(rèn)”按鈕 _fileName = dlgSave.FileName; /
12、得到用戶指定的文件名 / 如果擴展名為rtf格式,則以RTF格式保存文件,否則以普通文本格式保存文件 if (Path.GetExtension(_fileName) = ".rtf") rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.PlainText); / 如果不是新文件,根據(jù)當(dāng)前文件的格式保存當(dāng)前文件 else if (Path.GetExtension(_fileName)
13、= ".rtf") rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.PlainText); 2.3.5 另存為文件彈出一個文件保存對話框,用戶指定保存的文件名,將當(dāng)前的文件內(nèi)容保存到用戶的指定文件中,并修改當(dāng)前文件名_fileName。(代碼留給學(xué)生自己完成)測試:新建一個文件,輸入文件內(nèi)容,保存(這時需要指定新文件名,擴展名為txt),退出。打開一個文本文件,添加一行文本,修改部分內(nèi)
14、容,刪除一些內(nèi)容,保存(這時不需要指定新文件名),另存為一個新文件,擴展名為rtf,退出。打開一個擴展名為rtf文件的文件,退出。2.4 編輯功能實現(xiàn)2.4.1 剪切、復(fù)制、粘貼、撤消、恢復(fù)這幾個功能都是RichTextBox自身提供的,我們直接引用就可以了。以Cut為例,其代碼如下: private void miEditCut_Click(object sender, EventArgs e) rtbEditor.Cut(); 測試:新建一個文件,輸入文件內(nèi)容,保存(這時需要指定新文件名,擴展名為txt),退出。思考題:?可以實現(xiàn)查找和替換功能?2.5 格式功能實現(xiàn)2.5.1 字體創(chuàng)建一個
15、字體對話框(dlgFont),彈出字體對話框,選擇字體。根據(jù)是否有選擇文本,若有,修改選擇文本的字體,否則,修改整個文本的字體。 private void miStyleFont_Click(object sender, EventArgs e) / 創(chuàng)建字體對話框 FontDialog dlgFont = new FontDialog(); dlgFont.ShowColor = true; dlgFont.ShowApply = true; / 設(shè)置字體對框的默認(rèn)字體, / 如果已經(jīng)有選擇文本,則設(shè)置為選擇文本的字體和顏色 / 否則設(shè)置為全文的字體和姿色 if (rtbEditor.Sel
16、ectionLength > 0) dlgFont.Font = rtbEditor.SelectionFont; dlgFont.Color = rtbEditor.SelectionColor; else dlgFont.Font = rtbEditor.Font; dlgFont.Color = rtbEditor.ForeColor; / 顯示字體對話框,且用戶按下了“確認(rèn)”按鈕 if (dlgFont.ShowDialog() = DialogResult.OK) / 如果有選擇文件,剛修改選擇文本的字體和顏色 if (rtbEditor.SelectionLength >
17、; 0) rtbEditor.SelectionFont = dlgFont.Font; rtbEditor.SelectionColor = dlgFont.Color; / 否則修改整個文本的字體和顏色 else rtbEditor.Font = dlgFont.Font; rtbEditor.ForeColor = dlgFont.Color; 2.5.2 顏色創(chuàng)建一個顏色對話框(dlgColor),設(shè)置顏色對話框的當(dāng)前顏色(沒有選定,就為編輯器的顏色,若有選定,就為選定文本的顏色),彈出顏色對話框,選擇顏色。測試:首先打開一個文件,然后選擇菜單“格式 | 字體”,彈出字體對話框,選擇一
18、種字體,然后確認(rèn)對話框,觀察編輯器中的字體變化。選擇菜單“格式 | 顏色”,彈出顏色對話框,選擇一種顏色,然后確認(rèn)對話框,觀察編輯器中的顏色變化。?在字體對話框中怎么沒有字體的顏色?如何只改變選擇部分的字體?=> 答案設(shè)置字體對話框的一些屬性(ShowColor, ShowApply);只改變選擇部分的字體(SelectionFont)和顏色(SelectionColor);2.5.3 左、中、右對齊改變當(dāng)前段的對齊方式,是RichEditBox自帶的屬性SelectionAlignment,下面的代碼是實現(xiàn)了當(dāng)前段的左對齊。 private void miStyleAlignLeft_
19、Click(object sender, EventArgs e) rtbEditor.SelectionAlignment = HorizontalAlignment.Left; 2.5.4 縮進(jìn)改變當(dāng)前段的縮進(jìn)方式,是RichEditBox自帶的屬性SelectionHangingIndent(懸掛),SelectionIndent(左縮進(jìn)),SelectionRightIndent(右縮進(jìn)),下面的代碼指定了當(dāng)前段的左縮進(jìn)。 private void miStyleIndent_Click(object sender, EventArgs e) rtbEditor.SelectionIn
20、dent = 20; 測試:首先打開一個文件,然后選擇菜單“格式 | 左對齊”,可以設(shè)置光標(biāo)所在行左對齊,還可設(shè)置中對齊、右對齊、左縮進(jìn)。思考題:?如何設(shè)置首行縮進(jìn)、懸掛縮進(jìn)?首行縮進(jìn)和懸掛縮進(jìn)均采用SelectionHangingIndent進(jìn)行設(shè)置,設(shè)置值為負(fù)值時,設(shè)置首行縮進(jìn),設(shè)置值為正值時,設(shè)置懸掛縮進(jìn)。2.6 打印功能實現(xiàn)無論是預(yù)覽還是打印,主要還是要依賴PrintDocument控件來完成的,響應(yīng)該控件的PrintPage事件,在該事件響應(yīng)中真正輸出每頁的內(nèi)容。下面幾個功能的實現(xiàn),有些內(nèi)容是相互關(guān)系,如:要顯示或打印的內(nèi)容、當(dāng)前顯示或打印的字體、當(dāng)前的打印機設(shè)置和頁面設(shè)置,所以,添
21、加四個數(shù)據(jù)成員如下: / 下面幾個數(shù)據(jù)成員用于打印 private StringReader _srPrint = null; / 打印的內(nèi)容 private Font _printFont; / 打印字體 PrinterSettings _printerSettings = new PrinterSettings(); / 打印機設(shè)置 PageSettings _pageSettings = new PageSettings(); / 頁面設(shè)置2.6.1 預(yù)覽創(chuàng)建打印預(yù)覽對話框,將當(dāng)前編輯器中的文本讀到一個文本流StringReader中,設(shè)置打印字體與文件編輯器中的字體相同,設(shè)置Print
22、Document控件的頁面設(shè)置為用戶設(shè)置的值,將PrintDocument控件與預(yù)覽對話框關(guān)聯(lián)起來,調(diào)用預(yù)覽對話框,即可預(yù)覽文本編輯器中的內(nèi)容。2.6.2 打印創(chuàng)建打印對話框,將當(dāng)前編輯器中的文本讀到一個文本流StringReader中,設(shè)置打印字體與文件編輯器中的字體相同,設(shè)置PrintDocument控件的頁面設(shè)置為用戶設(shè)置的值,將PrintDocument控件與打印對話框關(guān)聯(lián)起來,調(diào)用打印對話框,即可打印文本編輯器中的內(nèi)容。2.6.3 設(shè)置打印機和設(shè)置頁面這兩個功能是關(guān)聯(lián)的,以設(shè)置頁面為主,在設(shè)置頁面中包含了設(shè)置打印機功能。創(chuàng)建頁面設(shè)置對話框,設(shè)置對話框的當(dāng)前打印機參數(shù)和頁面參數(shù),顯示對
23、話框,用戶可以修改打印機或頁面的參數(shù),確認(rèn)后,即可保存當(dāng)前的設(shè)置。 private void miPrintPrinterSetup_Click(object sender, EventArgs e) / 創(chuàng)建頁面設(shè)置對話框 PageSetupDialog dlgPageSetup = new PageSetupDialog(); / 使用用戶指定的打印機設(shè)置:這里需要既設(shè)置打印機設(shè)置,還要設(shè)置頁面設(shè)置 dlgPageSetup.PrinterSettings = _printerSettings; dlgPageSetup.PageSettings = _pageSettings; / 顯示
24、頁面設(shè)置對話框 if (dlgPageSetup.ShowDialog() = DialogResult.OK) _printerSettings = dlgPageSetup.PrinterSettings; private void miPrintPageSetup_Click(object sender, EventArgs e) / 創(chuàng)建頁面設(shè)置對話框 PageSetupDialog dlgPageSetup = new PageSetupDialog(); / 使用用戶指定的頁面設(shè)置 dlgPageSetup.PageSettings = _pageSettings; / 顯示頁面設(shè)
25、置對話框 if (dlgPageSetup.ShowDialog() = DialogResult.OK) _pageSettings = dlgPageSetup.PageSettings; 測試:首先打開一個文件,然后選擇菜單“打印 | 預(yù)覽”,可以看到預(yù)覽效果,如下圖。選擇菜單“打印 | 打印”,會彈出選擇打印機對話框,確認(rèn)打印機后,即可打印當(dāng)前編輯器中的內(nèi)容。選擇菜單“打印 | 設(shè)置打印機”,繪彈出頁面設(shè)置對話框,其中包含選擇打印機對話框,如下左圖。 選擇菜單“打印 | 設(shè)置頁面”,繪彈出頁面設(shè)置對話框,但其中不包含選擇打印機對話框,如上右圖。思考題:?如何設(shè)置打印機?如何設(shè)置打印文檔
26、的名稱?如果是富文本格式(不同段落不同文字都可能有不同的字體和大?。┰鯓訉崿F(xiàn)打???2.7 工具欄實現(xiàn)2.7.1 制作圖標(biāo)每個按鈕做一個圖標(biāo)文件,大小為16*16,參見FileNew.bmp,FileOpen.bmp,FileSave.bmp,EditCut.bmp,EditCopy.bmp,EditPaste.bmp。2.7.2 制作按鈕在工具欄添加按鈕并裝入每個按鈕的圖象,圖標(biāo)命名:tsbFileName, tsbFileOpen, tsbFileSave, tsbEditCut, tsbEditCopy, tsbEditPaste控件屬性屬性值說明ToolStripButtonNamets
27、bFileNew新建文件ImageFileNew.bmpimageTransparentColorOliveToolStripButtonNametsbFileOpen打開文件ImageFileOpen.bmpimageTransparentColorOliveToolStripButtonNametsbFileSave保存文件ImageFileSave.bmpimageTransparentColorOliveToolStripButtonNametsbEditCut剪切ImageEditCut.bmpimageTransparentColorOliveToolStripButtonName
28、tsbEditCopy編輯ImageEditCopy.bmpimageTransparentColorOliveToolStripButtonNametsbEditPaste粘貼ImageEditPaste.bmpimageTransparentColorOlive設(shè)計完成后的效果如下圖:響應(yīng)每個按鈕的Click消息,分別選擇對應(yīng)菜單項的消息響應(yīng)。測試:測試六個工具條按鈕的功能是否與對應(yīng)菜單項的功能一致。添加每個按鈕的ToolTipText;每個按鈕的響應(yīng)對應(yīng)相應(yīng)菜單的功能。2.8 狀態(tài)欄實現(xiàn)希望象Word等軟件一樣,當(dāng)光標(biāo)移到某個菜單項上或工具條的某個工具上時,在狀態(tài)欄顯示對應(yīng)菜單項或工具的
29、功能說明。此外,還可以顯示光標(biāo)當(dāng)前行號、列號,鍵盤的當(dāng)前狀態(tài)信息:是否按下插入鍵、數(shù)字鎖定鍵、大小寫轉(zhuǎn)換鍵、滾動鎖定鍵等。2.8.1 確定信息區(qū)在狀態(tài)欄添加五個ToolStripStatusLabel,其屬性設(shè)置如下表??丶傩詫傩灾嫡f明ToolStripStatusLabelNametsslMenuTip顯示菜單項功能Text就緒SpringTrue其寬度隨對話框的寬度變化而變化TextAlignMiddleLeftToolStripStatusLabelNametsslRowNo顯示行號Text行:TextAlignMiddleLeftToolStripStatusLabelNametss
30、lColNo顯示列號Text列:TextAlignMiddleLeftToolStripStatusLabelNametsslInsert顯示插入鍵Text(3個空格)BorderSidesAllBorderStyleSunkenToolStripStatusLabelNametsslNumLock顯示數(shù)字鎖定鍵Text(3個空格)BorderSidesAllBorderStyleSunkenToolStripStatusLabelNametsslCapsLock顯示大寫鎖定鍵Text(4個空格)BorderSidesAllBorderStyleSunkenToolStripStatusLab
31、elNametsslScrolLock顯示滾動鎖定鍵Text(6個空格)BorderSidesAllBorderStyleSunken設(shè)計完成后的效果如下圖:2.8.2顯示菜單項和工具的提示信息如果要實現(xiàn)當(dāng)鼠標(biāo)移到菜單項上或工具上時,實時顯示菜單項或工具的提示信息,首先要給這些菜單項和工具添加提示信息,即設(shè)置ToolTipText屬性值,各菜單項和工具的ToolTipText屬性設(shè)置如下表??丶傩詫傩灾嫡f明mnFileToolTipText文件管理miFileNewToolTipText建立一個新文件miFileOpenToolTipText打開一個指定文件miFileSaveToolTip
32、Text保存當(dāng)前文件miFileSaveasToolTipText另存為一個指定文件miFileExitToolTipText退出系統(tǒng)mnEditToolTipText編輯功能miEditCutToolTipText剪切選擇內(nèi)容到剪切板miEditCopyToolTipText復(fù)制選擇內(nèi)容到剪切板miEditPasteToolTipText粘貼剪切板的內(nèi)容到當(dāng)前光標(biāo)處miEditUndoToolTipText撤消上次操作miEditRedoToolTipText恢復(fù)上次撤消的操作.tsbFileNewToolTipText建立一個新文件tsbFileOpenToolTipText打開一個指定文
33、件tsbFileSaveToolTipText保存當(dāng)前文件tsbEditCutToolTipText剪切選擇內(nèi)容到剪切板tsbEditCopyToolTipText復(fù)制選擇內(nèi)容到剪切板tsbEditPasteToolTipText粘貼剪切板的內(nèi)容到當(dāng)前光標(biāo)處測試:運行程序,當(dāng)光標(biāo)移到菜單項或工具上時,可以看到該菜單項或工具的小提示,如下圖。2.8.3 在狀態(tài)欄實時顯示菜單和工具的提示信息所有要在狀態(tài)欄顯示菜單項小提示的菜單項,均響應(yīng)MouseEnter和MouseLeave消息,使用同一個消息響應(yīng)程序,如下代碼,則可實現(xiàn)當(dāng)鼠標(biāo)移到菜單項上時,狀態(tài)欄標(biāo)簽顯示菜單項的ToolTipText值,離開
34、時,顯示為空。同樣,響應(yīng)工具欄按鈕的MouseEnter和MouseLeave消息,當(dāng)鼠標(biāo)移到工具欄按鈕上時,狀態(tài)欄標(biāo)簽顯示工具欄按鈕的ToolTipText值,離開時,顯示為空。 private void MenuItem_MouseEnter(object sender, EventArgs e) ToolStripMenuItem menuItem = sender as ToolStripMenuItem; tsslMenuTip.Text = menuItem.ToolTipText; private void MenuItem_MouseLeave(object sender, E
35、ventArgs e) tsslMenuTip.Text = "就緒" private void ToolButton_MouseEnter(object sender, EventArgs e) ToolStripButton toolButton = sender as ToolStripButton; tsslMenuTip.Text = toolButton.ToolTipText; private void ToolButton_MouseLeave(object sender, EventArgs e) tsslMenuTip.Text = "就緒&q
36、uot; 測試:運行程序,當(dāng)光標(biāo)移到菜單項或工具上時,可以看到該菜單項或工具的小提示出現(xiàn)在狀態(tài)欄中,如下圖。2.8.4 在狀態(tài)欄實時顯示光標(biāo)的位置響應(yīng)文本編輯器rtbEditor的MouseDown消息,得到光標(biāo)的位置,進(jìn)而得到光標(biāo)的行號和列號。響應(yīng)文本編輯器rtbEditor的KeyUp消息,得到光標(biāo)的位置,進(jìn)而得到光標(biāo)的行號和列號。 private void rtbEditor_MouseDown(object sender, MouseEventArgs e) / 根據(jù)光標(biāo)所在象素位置,得到字符索引號 int nCharIndex = rtbEditor.GetCharIndexFrom
37、Position(new Point(e.X, e.Y); / 根據(jù)字符索引號,得到所在行號和列號 int nRowNo = rtbEditor.GetLineFromCharIndex(nCharIndex); int nFirstCharIndex = rtbEditor.GetFirstCharIndexFromLine(nRowNo); int nColNo = nCharIndex - nFirstCharIndex; / 在狀態(tài)欄上顯示行號和列號 tsslRowNo.Text = string.Format("行:0", nRowNo + 1); tsslCol
38、No.Text = string.Format("列:0", nColNo); private void rtbEditor_KeyUp(object sender, KeyEventArgs e) / 根據(jù)光標(biāo)所在位置,得到字符索引號 int nCharIndex = rtbEditor.SelectionStart; / 根據(jù)字符索引號,得到所在行號和列號 int nRowNo = rtbEditor.GetLineFromCharIndex(nCharIndex); int nFirstCharIndex = rtbEditor.GetFirstCharIndexFr
39、omLine(nRowNo); int nColNo = nCharIndex - nFirstCharIndex; / 在狀態(tài)欄上顯示行號和列號 tsslRowNo.Text = string.Format("行:0", nRowNo + 1); tsslColNo.Text = string.Format("列:0", nColNo); 測試:運行程序,打開一個文檔,移到光標(biāo)到不同的位置,觀察狀態(tài)條中顯示當(dāng)前光標(biāo)所在的位置的變化,如下圖。2.8.5 在狀態(tài)欄實時顯示鍵盤的狀態(tài)在窗體的構(gòu)造函數(shù)frmEditor()中添加如下語句:Application
40、.Idle += new EventHandler(Application_Idle)然后定義Application_Idle()方法,見程序。 public frmEditor() InitializeComponent(); Application.Idle += new EventHandler(Application_Idle); private void Application_Idle(object sender, EventArgs e) if (Control.IsKeyLocked(Keys.Insert) tsslInsert.Text = "Ins"
41、else tsslInsert.Text = " " if (Control.IsKeyLocked(Keys.NumLock) tsslNumLock.Text = "Num" else tsslNumLock.Text = " " if (Control.IsKeyLocked(Keys.CapsLock) tsslCapsLock.Text = "Caps" else tsslCapsLock.Text = " " if (Control.IsKeyLocked(Keys.Scroll)
42、tsslScrollLock.Text = "Scroll" else tsslScrollLock.Text = " " 測試:運行程序,打開一個文檔,按下插入鍵、數(shù)字鎖定鍵、大寫鎖定鍵、滾動鎖定鍵,測試狀態(tài)條顯示的改變,如下圖。2.9 文本查找和替換2.9.1 添加一個新的窗體文件控件屬性屬性值說明FormNamefrmFindAndReplace查找與替換Text查找和替換Font宋體,五號TopMostTrue總顯示在最上面TabControlNametabControl1卡片控制TabPageNametabFind卡片頁:查找Text查找Tab
43、PageNametabReplace卡片頁:替換Text替換TextBoxNametxtFindFind查找頁:查找文本CheckBoxNamecbFindWholeWord查找頁:全字匹配Text全字匹配CheckBoxNamecbFindMatchCase查找頁:區(qū)分大小寫Text區(qū)分大小寫B(tài)uttonNamebtnFindFindNext查找頁:查找下一個Text查找下一個ButtonNamebtnFindCancel查找頁:取消Text取消TextBoxNametxtReplaceFind替換頁:查找文本TextBoxNametxtReplaceReplace替換頁:替換文本Check
44、BoxNamecbReplaceWholeWord替換頁:全字匹配Text全字匹配CheckBoxNamecbReplaceMatchCase替換頁:區(qū)分大小寫Text區(qū)分大小寫B(tài)uttonNamebtnReplaceFindNext查找頁:查找下一個Text查找下一個ButtonNamebtnReplaceReplace查找頁:替換Text替換ButtonNamebtnReplaceReplaceAll查找頁:全部替換Text全部替換ButtonNamebtnReplaceCancel查找頁:取消Text取消設(shè)計完成后的窗口如下: 2.9.2 數(shù)據(jù)成員和屬性設(shè)計為了便于功能實現(xiàn),設(shè)計了四個數(shù)據(jù)成員和屬性,如下: / 要查找的字符串 string _findStr; public string FindStr get return _findStr; set _findStr = value; txtFindFind.Text = _findStr; txtReplaceFind.Text = _findStr; / 要替換的字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國油料作物行業(yè)深度評估與未來投資走勢預(yù)測報告
- 2025至2030中國汽車電子制動力分配(EBD)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國汽車售后服務(wù)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報告
- 2025至2030中國水晶貓砂行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國水產(chǎn)養(yǎng)殖添加劑行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國止汗露行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國模切膠帶行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國板材地板行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 從《IRIS動產(chǎn)擔(dān)保交易示范法》審視我國動產(chǎn)擔(dān)保制度的完善之路
- 上市公司股票期權(quán)激勵制度的多維審視與優(yōu)化路徑探究
- 江蘇省揚州市2024-2025學(xué)年四年級下學(xué)期6月數(shù)學(xué)期末試題一(有答案)
- 2024年西南醫(yī)科大學(xué)招聘專職輔導(dǎo)員真題
- 建筑施工項目支付流程及管理
- 保育師操作考試題及答案
- 精準(zhǔn)教學(xué)的數(shù)據(jù)驅(qū)動模式
- 學(xué)校公務(wù)外出管理制度
- 天津市部分區(qū)2025年九年級下學(xué)期中考二模數(shù)學(xué)試卷(含詳解)
- 高中生物競賽課件第一章 組成細(xì)胞的分子基礎(chǔ)課時1
- 2024 - 2025學(xué)年人教版三年級下冊美術(shù)期末考試試卷及參考答案
- DB13-T2828-2018-馬鈴薯抗旱性鑒定技術(shù)規(guī)程-河北省
- 礦泉水配送合同協(xié)議
評論
0/150
提交評論