-->製作記事本案例可以將之前WinForm的基礎知識複習一遍,現分享一下學習收穫——製作記事本步驟。
-->第一步:設計文本框和上下文菜單。文本框停靠在窗體四周。上下文菜單設計及快捷鍵和加速鍵。
-->知識點:文本框停靠在窗體四周,需要設置文本框屬性Dock的值爲Fill,無論窗體的大小如何改變,文本框都會隨着窗體的變化而變化;
---------------上下文菜單需要用組件—MenuStrip,一級一級設置文字內容,通過&加字母來設置熱鍵即加速鍵,運行時通過Alt加字母來實現;
---------------右擊上下文菜單的文字內容,通過設置其屬性—ShorcutKeys來設置快捷鍵,通過組合鍵來是實現功能。
-->第二步:分別設置每一個菜單下文字的功能。雙擊文字或者設置對應的Click事件來實現功能。
-->文件—新建功能:通過將文本框的內容賦爲空或者用Clear方法清空當前內容。
-->文件—打開功能:需要用到OpenFileDialog類,提示用戶需要打開的文本文檔,然後就是讀取文本文檔的內容。
----------------------------讀取文本文檔:
----------------------------聲明一個文件流對象,用來存放讀取的文件流對象: FileStream fs=newFileStream(ofd.FileName,FileMode.Open,FileAccess.Read, FileShare.None);
----------------------------創建讀取器,用來將文件流中的數據讀取出來:StreamReader sr = new StreamReader(fs, Encoding.Default);
----------------------------通過讀取器將文件流中的數據讀取到文本框中:txtInput.Text = sr.ReadToEnd();
----------------------------關閉讀取器:sr.Close();
----------------------------關閉文件流:fs.Close();
----------------------------由於文件讀取原理(文件流對象相當於容器,只有容器滿了或者關閉纔會將內容放到讀取器中),上面兩項關閉必須操作,否則無法成功讀取文件。
-->文件—保存功能:跟文件—打開功能類似,只不過是調用SaveFileDialog類,原理是一樣的。另存爲功能也是類似原理,只不過必須命名。
-->編輯—複製和粘貼功能:調用文本框的Copy方法即可;粘貼功能調用文本框的Paste方法即可實現這兩個功能。
-->編輯—查找功能:文本查找功能需要彈出一個新的窗體—子窗體,設計時需重新聲明一個對象,並在調用時顯示該窗體,然後在子窗體中進行查找功能。
----------------------------注意當子窗體需要控制主窗體時,需要在主窗體中聲明子窗體時將主窗體的應用—this,以參數形式傳過去,子窗體必須重新寫構造方法,然後在子窗體中進行查找,當進行查找時需要激活主窗體並選中查找到的內容。
-->知識點:文本框的Select方法、字符串的IndexOf方法。
-->編輯—替換功能:在文本查找功能基礎上,將查找到的內容替換成我們需要的內容,需要用到字符串的Replace方法。
-->第三步:需要進行優化改動,實現關閉未保存文件提示功能以及是否需要命名功能。
---------------用一個標誌位判斷文本文檔是否改動,和一個存放文本名的變量,判斷打開文件有名字,保存以及另存爲是否需要命名等功能。
-->注意:製作記事本需要理清整個思路,千萬不要看一下已設計好的然後改一下代碼,那樣複習一點效果都沒有,整合整個代碼的邏輯。
附上代碼記事本
備註:寫於2013年5月13日