Hiragi(GKUTH)の日常
理系大学生の日記

☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前
住所: 大阪府
連絡を取る:

☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)

投稿記事 by Hiragi(GKUTH) » 13年前

はい、勉強がてらメモ帳を作成しております。
基本的なファイルの読み込み、書き込みは出来るようになりました。
いや~saveFileDialog,openFileDialog,とても楽ですね~、こんなに簡単に出来るとは!

問題は終了処理ですね・・・、何これ難しい
既に保存していて、前回の保存から変更が無い -> そのまま終了
既に保存していて、前回の保存から変更がある -> 上書き保存
まだ一度も保存していないかつ文字を入力している -> セーブダイアログ起動

さて~何これ難しい、質問は質問掲示板でするモノなんでしょうけど、出すほどのものでもなさそうなんですよね、

ていうことで、コメントの無い超難解コードをごらんアレ!!!(嘘
のちのちコメントつけます。 ・・・アレ? これ直すも何も出来てねぇじゃん・・・ 、無駄なやつ書きすぎじゃないか?とにかく張ります
あとでちゃんと整理して張りなおしますので、

そしてかなり効率の悪い書き方...美しいコードなんてかけらも無い^^;
前回の日記で沖さんが布教していらっしゃったC#を今日からとある動画を見てやっていたもので、まだ理解度が浅い、狭い、基本すら出来ていないのに
いきなりGUIとか自分でも順番がおかしいと感じますww

さてーC#初めてのGUIがメモ帳とは・・・どうなるものか、ちょっと心配ですがもっと頑張ります!!

taketoshi
記事: 222
登録日時: 14年前

RE: ☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)

投稿記事 by taketoshi » 13年前

前にC言語とWINAPIでWindowsと同じ機能を持ったメモ帳を作ったところ800行位になった覚えがあります。

C#だとかなり行数が少なく出来そうですね~。

アバター
沖 滉均
記事: 237
登録日時: 14年前

RE: ☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)

投稿記事 by 沖 滉均 » 13年前

まぁ、Formのデザインを作るのがかったるいからコード見ただけだけど

CODE:

string filePath = null;
って初期化しているのに
[codecshap]
if (filePath != "") { ... }
[/code]
としている辺りに不安を感じるね。
"" == nullにはならないから問題あるんじゃないかな?

[追記]
そうそう、もう一つ終了時の保存確認を行うならメニューの終了をクリックしたときに捕まえると×を押されたら捕まえられない。
だから、FormのFormClosingイベントを捕まえてやった方が良いよ。
で、メニューから終了を選んだときはApplication.Exit();としてやれば×を押して閉じた時に同じ場所に飛ぶから
最後に編集したユーザー 沖 滉均 on 2012年6月25日(月) 17:55 [ 編集 2 回目 ]

アバター
コスモ
記事: 3
登録日時: 14年前

RE: ☆絶賛メモ帳作成中☆(来たれC#errrrrrrrrrr!!!!)

投稿記事 by コスモ » 13年前

終了時には.NET FrameworkならFormのOnClosingメソッドがあるので
そこで終了処理をしてやればいいと思います。
ただ、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)関数で捕まえてフラグを立ててやれば確認できるのかも知れませんね。