はい、勉強がてらメモ帳を作成しております。
基本的なファイルの読み込み、書き込みは出来るようになりました。
いや~saveFileDialog,openFileDialog,とても楽ですね~、こんなに簡単に出来るとは!
問題は終了処理ですね・・・、何これ難しい
既に保存していて、前回の保存から変更が無い -> そのまま終了
既に保存していて、前回の保存から変更がある -> 上書き保存
まだ一度も保存していないかつ文字を入力している -> セーブダイアログ起動
さて~何これ難しい、質問は質問掲示板でするモノなんでしょうけど、出すほどのものでもなさそうなんですよね、
ていうことで、コメントの無い超難解コードをごらんアレ!!!(嘘
のちのちコメントつけます。 ・・・アレ? これ直すも何も出来てねぇじゃん・・・ 、無駄なやつ書きすぎじゃないか?とにかく張ります
あとでちゃんと整理して張りなおしますので、
つ
そしてかなり効率の悪い書き方...美しいコードなんてかけらも無い^^;
前回の日記で沖さんが布教していらっしゃったC#を今日からとある動画を見てやっていたもので、まだ理解度が浅い、狭い、基本すら出来ていないのに
いきなりGUIとか自分でも順番がおかしいと感じますww
さてーC#初めてのGUIがメモ帳とは・・・どうなるものか、ちょっと心配ですがもっと頑張ります!!
Hiragi(GKUTH)の日常
理系大学生の日記
理系大学生の日記
☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)
- Hiragi(GKUTH)
- 記事: 167
- 登録日時: 14年前
- 住所: 大阪府
- 連絡を取る:
RE: ☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)
前にC言語とWINAPIでWindowsと同じ機能を持ったメモ帳を作ったところ800行位になった覚えがあります。
C#だとかなり行数が少なく出来そうですね~。
C#だとかなり行数が少なく出来そうですね~。
RE: ☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)
まぁ、Formのデザインを作るのがかったるいからコード見ただけだけど
って初期化しているのに
[codecshap]
if (filePath != "") { ... }
[/code]
としている辺りに不安を感じるね。
"" == nullにはならないから問題あるんじゃないかな?
[追記]
そうそう、もう一つ終了時の保存確認を行うならメニューの終了をクリックしたときに捕まえると×を押されたら捕まえられない。
だから、FormのFormClosingイベントを捕まえてやった方が良いよ。
で、メニューから終了を選んだときはApplication.Exit();としてやれば×を押して閉じた時に同じ場所に飛ぶから
って初期化しているのに
[codecshap]
if (filePath != "") { ... }
[/code]
としている辺りに不安を感じるね。
"" == nullにはならないから問題あるんじゃないかな?
[追記]
そうそう、もう一つ終了時の保存確認を行うならメニューの終了をクリックしたときに捕まえると×を押されたら捕まえられない。
だから、FormのFormClosingイベントを捕まえてやった方が良いよ。
で、メニューから終了を選んだときはApplication.Exit();としてやれば×を押して閉じた時に同じ場所に飛ぶから
最後に編集したユーザー 沖 滉均 on 2012年6月25日(月) 17:55 [ 編集 2 回目 ]
RE: ☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)
終了時には.NET FrameworkならFormのOnClosingメソッドがあるので
そこで終了処理をしてやればいいと思います。
ただ、http://msdn.microsoft.com/ja-jp/library ... osing.aspx
にもあるように
編集されたかどうかはTextBox1.Changedイベントをprivate void textBox1_TextChanged(object sender, EventArgs e)関数で捕まえてフラグを立ててやれば確認できるのかも知れませんね。
そこで終了処理をしてやればいいと思います。
ただ、http://msdn.microsoft.com/ja-jp/library ... osing.aspx
にもあるように
とのこと。これには注意してください。Application.Exit メソッドが呼び出されてアプリケーションを終了する場合、OnClosed メソッドと OnClosing メソッドは呼び出されません。 これらのメソッドのいずれかに実行する必要がある検証コードがある場合は、Exit メソッドを呼び出す前に、開いている各フォームに対して Form.Close メソッドを個別に呼び出す必要があります。
編集されたかどうかはTextBox1.Changedイベントをprivate void textBox1_TextChanged(object sender, EventArgs e)関数で捕まえてフラグを立ててやれば確認できるのかも知れませんね。