功能增添
物件屬性設定(啟始狀態)
此部分的話方法有二:一是利用表單設計右下方看到的屬性(或點選表單上的物件,點擊右鍵找到屬性(P)開啟),利用下拉選單去更改屬性;二是可以在程式碼中針對物件屬性進行設定,若是初始狀態則一般都會寫在public FormName()這個建構子中。
以微軟的記事本為例,頂端下拉選端單兩個是要一開始就設定有無選擇的選項:自動換行與狀態列,這兩者在一開始都不會選擇開啟。因此我們要設定checked這個屬性為false。若根據上述的方法演練一次,則可參考下面兩張圖片:
因此在自動換行跟狀態列上,我們就可以看到是尚未被勾選啟用的,而在視窗最下方的狀態列也會因為設定visible為false,在沒點選狀態列前,是不會被顯示出來的。
而還有其他有用到的屬性如:Size、ShortCutKey、Font等,也都可以參考類似的方法去進行設定,或在下一小節所述的Event Handler中用到對各個物件屬性的改變。
事件處理器
Event Handler
使用者進行操作在記事本中經常用到的就是滑鼠的點擊與鍵盤的輸入使文字區塊內容改變(輸入到richTextBox當中)。因此這些事件的發生,就要撰寫對應的Event Handler執行對應的反應。
這邊就舉儲存檔案這個按鈕與當使用者輸入文字造成Rich
Text Box內的文字改變時,需要執行對應處理。
點擊事件
Click Event
儲存檔案,當我們點擊下拉選單中的按鈕-儲存檔案或先前設定的快捷鍵(ShortCutKey)Ctrl+S時,需要開啟儲存檔案的對話視窗,若要快速進入撰寫Event Handler的function,則可以在該按鈕直接點擊滑鼠兩下,就會自動設定及宣告Event Handler並自動把視窗直接跳轉到function的撰寫,算是相當的方便。此時我們要處理的就只是根據對應的處理,寫出如下面的程式碼:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private void ToolStripMenuItem_13_Click(object sender, EventArgs e) | |
{ | |
//new one savefiledialog | |
SaveFileDialog saveFileDialog1 = new SaveFileDialog(); | |
//Rename the title as 儲存檔案(Differentiate the dialog title from the 另存新檔) | |
saveFileDialog1.Title = "儲存檔案"; | |
//Set the default name | |
saveFileDialog1.FileName = "新記事本檔案.txt"; | |
saveFileDialog1.Filter = "Text File | *.txt"; | |
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) | |
{ | |
StreamWriter writer = new StreamWriter(saveFileDialog1.OpenFile()); | |
writer.WriteLine(richTextBox1.Text); | |
writer.Dispose(); | |
writer.Close(); | |
//We want to get the FileName like userdefinename.txt,so we want to process the FileName | |
//Not correct: this.Text = "記事本:目前開啟檔案-"+saveFileDialog1.FileNames; | |
FileNameinTitle=Path.GetFileName(saveFileDialog1.FileName); | |
OpenedFileName = saveFileDialog1.FileName; | |
this.Text = "記事本-目前開啟檔案:" + FileNameinTitle; | |
} | |
} |
在上述程式碼當中,可以看到我宣告了一個新的儲存檔案對話視窗(SaveFileDialog),並且針對他的屬性如視窗的標題(Title)、預設儲存檔案的名稱(FileName)、可以儲存的檔案類型的篩選器(Filter),進行設定,並執行ShowDialog這個方法,讓對話視窗顯示給使用者。
而實際儲存的作法,則是利用StreamWriter來把目前richTextBox中的文字(Text)寫到對應的文件中。另外要注意的是在檔案被儲存過後,目前記事本視窗的標題顯示所開啟的文件名稱也要隨之更改,但在對話視窗中的屬性是連詳細檔案位置都顯示,因此要經過一次的處理(以Path.GetFileName這個方法)來取得檔案名稱,在將這個名稱儲存到先前宣告的OpenedFileName當中。
留言
張貼留言