DOBON.NET DOBON.NETプログラミング掲示板過去ログ

内容が変更されている時保存するかどうかが出る方法

環境/言語:[WindowsXP/C#]
分類:[.NET]

いろんなテキストエディタとかで、ファイルが変更されてたら、保存するかどうかでるじゃないですか。
あれってどうやってやるんですか?
普通の保存はできるんですが・・・。
このサイトの、フォルダ、ファイルの変更を監視するではなんかフォルダを選択しとかなきゃいけないみたいで・・・。

僕的には、変更されていたら、なんか呼び出すやつをつけると思うのですが、それ自体わからなくて・・・。
初心者ですいません。
普通の保存の仕方は知ってます。
どうかよろしくお願いします。
■No3205に返信(YUSKさんの記事)
> いろんなテキストエディタとかで、ファイルが変更されてたら、保存するかどうかでるじゃないですか。
> あれってどうやってやるんですか?
> 普通の保存はできるんですが・・・。
> このサイトの、フォルダ、ファイルの変更を監視するではなんかフォルダを選択しとかなきゃいけないみたいで・・・。
>
> 僕的には、変更されていたら、なんか呼び出すやつをつけると思うのですが、それ自体わからなくて・・・。
> 初心者ですいません。
> 普通の保存の仕方は知ってます。
> どうかよろしくお願いします。

まず、boolでテキストが保存されているかどうかのフラグをたて、TextBox(RichTextBox)のTextChangedイベントでフラグをtrueにします。上書き保存などされた場合にはフラグをfalseにします。

ユーザーに問い合わせるときはMessageBoxを使います。

DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);

if(result == DialogResult.Yes)
{
//ユーザーが保存を選択した場合。
}
else if(result == DialogResult.No)
{
//選択しなかった場合。
}
else
{
//キャンセルされた場合。
}
これでOKです。
> まず、boolでテキストが保存されているかどうかのフラグをたて、TextBox(RichTextBox)のTextChangedイベントでフラグをtrueにします。上書き保存などされた場合にはフラグをfalseにします。
>
> ユーザーに問い合わせるときはMessageBoxを使います。
>
> DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
>
> if(result == DialogResult.Yes)
> {
> //ユーザーが保存を選択した場合。
> }
> else if(result == DialogResult.No)
> {
> //選択しなかった場合。
> }
> else
> {
> //キャンセルされた場合。
> }
> これでOKです。

bollってなんですか!?一応コードはできました。
TextChangedを、trueにできませんけど・・・。
コードができたので、これはこれでいいのかな〜。と(ぇ

このコードをどこに貼り付けたらいいんですか?
リッチテキストボックスのところでやったら、文字を打ったりしたら、でてきます・・・。

フォームに貼り付けてもだめでした。

こんな初心者ですが、どうかよろしくお願いします。
> bollってなんですか!?一応コードはできました。

bollではなくboolですね。
intやstringと同じく変数の型です。

・ほんと、うそ
・ある、ない
・ON / OFF

のような二つの状態を持つデータ型で、ブール型(真偽値)といいます。
ほんと、ある、ONのような状態をtrue、うそ、ない、OFFのような状態をfalseで表します。

「フラグ」という言葉の方に疑問を持たれていない点から、フラグはご存知なんですよね?
int型で1(ほんと、ある、ON)、0(うそ、ない、OFF)を表すこともできますが、
こういった2つの状態を表すフラグのための変数としてはboolを使うとわかりやすいのでおすすめです。

> このコードをどこに貼り付けたらいいんですか?

(ヒント)
よくあるテキストエディタでテキストエディタ上でファイルの内容が変更されていたら、
「ファイルの内容が変更されています。保存しますか?」というメッセージが
出る場面がありますが、どういったときにこのメッセージは出ますか?

それを考えてみましょう。
■No3212に返信(よねKENさんの記事)
>>bollってなんですか!?一応コードはできました。
>
> bollではなくboolですね。
> intやstringと同じく変数の型です。
>
> ・ほんと、うそ
> ・ある、ない
> ・ON / OFF
>
> のような二つの状態を持つデータ型で、ブール型(真偽値)といいます。
> ほんと、ある、ONのような状態をtrue、うそ、ない、OFFのような状態をfalseで表します。
>
> 「フラグ」という言葉の方に疑問を持たれていない点から、フラグはご存知なんですよね?
> int型で1(ほんと、ある、ON)、0(うそ、ない、OFF)を表すこともできますが、
> こういった2つの状態を表すフラグのための変数としてはboolを使うとわかりやすいのでおすすめです。
>
>>このコードをどこに貼り付けたらいいんですか?
>
> (ヒント)
> よくあるテキストエディタでテキストエディタ上でファイルの内容が変更されていたら、
> 「ファイルの内容が変更されています。保存しますか?」というメッセージが
> 出る場面がありますが、どういったときにこのメッセージは出ますか?
>
> それを考えてみましょう。
>

フラグもききたっかたんですけど、質問は原則として一つの投稿に一つにすること。ってあったからやめたんです。

リッチテキストボックス(テキストボックス)の内容が変更されていて、閉じるを押した時になりますよね〜。

でもフォームじゃできなかったし・・・。
Closingで設定してみれば・・・。
できましたが、保存しますかが何回もでてきます。
これを直せばできるはずです。
これを消すのを少し研究します。
まだ解決はしていませんが、自分で研究するので、これについての解答はまだしないでください。
ヒントは歓迎です(ぇ
■No3214に返信(YUSKさんの記事)
> ■No3212に返信(よねKENさんの記事)
> >>bollってなんですか!?一応コードはできました。
>>
>>bollではなくboolですね。
>>intやstringと同じく変数の型です。
>>
>>・ほんと、うそ
>>・ある、ない
>>・ON / OFF
>>
>>のような二つの状態を持つデータ型で、ブール型(真偽値)といいます。
>>ほんと、ある、ONのような状態をtrue、うそ、ない、OFFのような状態をfalseで表します。
>>
>>「フラグ」という言葉の方に疑問を持たれていない点から、フラグはご存知なんですよね?
>>int型で1(ほんと、ある、ON)、0(うそ、ない、OFF)を表すこともできますが、
>>こういった2つの状態を表すフラグのための変数としてはboolを使うとわかりやすいのでおすすめです。
>>
> >>このコードをどこに貼り付けたらいいんですか?
>>
>>(ヒント)
>>よくあるテキストエディタでテキストエディタ上でファイルの内容が変更されていたら、
>>「ファイルの内容が変更されています。保存しますか?」というメッセージが
>>出る場面がありますが、どういったときにこのメッセージは出ますか?
>>
>>それを考えてみましょう。
>>
>
> フラグもききたっかたんですけど、質問は原則として一つの投稿に一つにすること。ってあったからやめたんです。
>
> リッチテキストボックス(テキストボックス)の内容が変更されていて、閉じるを押した時になりますよね〜。
>
> でもフォームじゃできなかったし・・・。
> Closingで設定してみれば・・・。
> できましたが、保存しますかが何回もでてきます。
> これを直せばできるはずです。
> これを消すのを少し研究します。
> まだ解決はしていませんが、自分で研究するので、これについての解答はまだしないでください。
> ヒントは歓迎です(ぇ
>
つまりですね、FormのClosedイベント(Closingイベントでもいいみたいです)がおきたときに、フラグをチェックして、保存されていなかったらメッセージボックスでたずねればいいわけです。
ただ、実際テキストエディタを作る場合には、もっと多くのフラグを立てなければなりません。そのファイルがローカルから開かれたものか、新規作成されたものか、名前はついているかなどです。僕がテキストエディタを作ったときはドキュメントの状態を示す列挙型を作って、それで管理していました。DocumentState列挙型だったかな。このほうが、複数のフラグを立てるより簡単でした。
がんばってください。
フラグとはなんでしょう・・・。さっきも聞きましたが・・・。
すいません。
保存されているかいないかを判断すればいいわけですか真か偽ってことですね。
本で読んだ事があります。

実際には、テキストエディタではなく、ワープロ用ユティリティですかね??
どっちも同じ・・・かな??
■No3218に返信(YUSKさんの記事)
> フラグとはなんでしょう・・・。さっきも聞きましたが・・・。
> すいません。
説明不足でしたね。フラグというのは実際はbool型のフィールドのことです。
フラグというのは「旗」という意味ですね。そのとおり、ある事が真か偽か
の目印にする「旗」のことです。これがフラグです。
これはC#に限った用語ではなく、プログラミング全般の共通の用語です。
覚えておいてくださいね。

> 保存されているかいないかを判断すればいいわけですか真か偽ってことですね。
> 本で読んだ事があります。
そうです。「フラグ」で判断するのです。

> 実際には、テキストエディタではなく、ワープロ用ユティリティですかね??
> どっちも同じ・・・かな??
まぁ、どちらにしても、ドキュメントの保存に関する部分では、同じですけどね。
本みながらやってるんですけど、どうもうまくいきません。
ifとかでやってみましたけど、できませんでした。
う〜ん。保存されていない時にするっていうのも出来ない自分・・・。
保存されているかどうか・・・。
う〜ん。
この機能ってやっぱりいりますよね?
いらないのだったら後にしようかな〜。
なんて思ったり(ぇ
■No3220に返信(YUSKさんの記事)
> 本みながらやってるんですけど、どうもうまくいきません。
> ifとかでやってみましたけど、できませんでした。
> う〜ん。保存されていない時にするっていうのも出来ない自分・・・。
> 保存されているかどうか・・・。
> う〜ん。
> この機能ってやっぱりいりますよね?
> いらないのだったら後にしようかな〜。
> なんて思ったり(ぇ

混乱してきたら、順序立てて考えると判りやすいですよ。
 1.どういう時に処理が発生するのか
  →これで処理を開始するイベントが明確になると思います。

 2.発生する場合にはどのような状態があるのか
  →これが実際の処理を振り分ける条件になります。

 3.どういう時に状態は変化するのか
  →これがフラグです。

 4.処理が終わった後に状態は変化するのか
  →処理後の後始末といった感じでしょうか。

 5.上記を踏まえて、2で挙がった状態ごとに処理を考える
  →フローチャートなどを書くと、処理の動きが判りやすいかもしれません。

できるだけ自力で解決したいようなので、遠まわしな書き方になってしまいました。
判り辛くてごめんなさい。がんばってくださいね。
自分なりに書いてみました。
フロチャート
 1.どういう時に処理が発生するのか
  ファイルが保存されていない時、閉じるを押したとき(終了を押した時)。

 2.発生する場合にはどのような状態があるのか
 保存するかどうかが出て、保存をするを押したら、保存され、キャンセルを押したらキャンセルされ、いつもの編集画面になり、いいえを押したら、アプリケーションを終了させる。

 3.どういう時に状態は変化するのか
 すでに保存されている時は発生しない。保存されていない時は発生する。

 4.処理が終わった後に状態は変化するのか
  保存されれば、そのまま実行される。いつもの編集画面に戻る。

 5.上記を踏まえて、2で挙がった状態ごとに処理を考える
 ...
  2.のがなんか違う事かいてるかも・・・。

1.はできています。2.は、キャンセル以外できています。3.が謎です。
4.は、キャンセルと同様の処理をしたらいい?

ん〜。むずかしいですね〜。
あ。1.の、閉じるを押した時はできていると言うことです。
■No3225に返信(YUSKさんの記事)
> 自分なりに書いてみました。
> フロチャート
>  1.どういう時に処理が発生するのか
>   ファイルが保存されていない時、閉じるを押したとき(終了を押した時)。
>
>  2.発生する場合にはどのような状態があるのか
>  保存するかどうかが出て、保存をするを押したら、保存され、キャンセルを押したらキャンセルされ、いつもの編集画面になり、いいえを押したら、アプリケーションを終了させる。
>
>  3.どういう時に状態は変化するのか
>  すでに保存されている時は発生しない。保存されていない時は発生する。
>
>  4.処理が終わった後に状態は変化するのか
>   保存されれば、そのまま実行される。いつもの編集画面に戻る。
>
>  5.上記を踏まえて、2で挙がった状態ごとに処理を考える
>  ...
>   2.のがなんか違う事かいてるかも・・・。
>
> 1.はできています。2.は、キャンセル以外できています。3.が謎です。
> 4.は、キャンセルと同様の処理をしたらいい?
>
> ん〜。むずかしいですね〜。

1.についてはそれでOKです。(「閉じる」を押した時)
2.については、どちらかというと3.の内容がふさわしいでしょう。(保存されている時・保存されていない時)
順立てて考える場合にはできるだけ単純に一言で答えた方が判りやすいです。

ここでいう「状態」とは、YUSKさんが言うところの「保存されている時・保存されていない時」です。

3.については、ユーザまたはプログラムが何を行った時に、この状態が切り替わるのかを考えてみましょう。


※フローチャートとは、ソースコードを1行ごとに言葉にして、処理の通り道を線でつないで図解したものです。
 上記の質問形式はフローチャートとは呼べませんので注意してくださいね。
あう〜・・・。全然分かりません・・・。
土曜日の朝から考えているんですが・・・(ずっとではありません。一日6時間くらい(ぇ)。
う〜〜〜ん。
すいません。コードをのせていただけないでしょうか?
ダメならまた自分で考えます。

>※フローチャートとは、ソースコードを1行ごとに言葉にして、処理の通り道を線でつないで図解したものです。
 >上記の質問形式はフローチャートとは呼べませんので注意してくださいね。
そうなんですか!?初めて知りました(おい

プログラミングって奥が深いですよね〜。
■No3230に返信(YUSKさんの記事)
> あう〜・・・。全然分かりません・・・。
> 土曜日の朝から考えているんですが・・・(ずっとではありません。一日6時間くらい(ぇ)。
> う〜〜〜ん。
> すいません。コードをのせていただけないでしょうか?
> ダメならまた自分で考えます。
>
> >※フローチャートとは、ソースコードを1行ごとに言葉にして、処理の通り道を線でつないで図解したものです。
>  >上記の質問形式はフローチャートとは呼べませんので注意してくださいね。
> そうなんですか!?初めて知りました(おい
>
> プログラミングって奥が深いですよね〜。

「保存されている時・保存されていない時」というのは「ファイルの内容(初期状態)が変更されていない時・変更されている時」に言い換えることができます。
(ここの「変更されている」というのは「ファイルを新規に作成した場合」と「既存のファイルを編集した場合」を含みます)

まず、Bool型の変数(フラグ)を用意し、初期値(起動時・ファイル読み込み時)はTRUE(保存済み)にしておきます。
そして、テキストの内容に変更が加えられたらフラグをFALSE(未保存)にします。

あとは「閉じる」が押された時にフラグの内容を見てFALSEであればNo.3206でりょうさんが書かれたような処理でファイルの保存を聞くようにすればいいでしょう。
保存が成功したらフラグをTRUEに戻しておくのも大切です(でないと閉じるたびに保存を聞かれるかと思います)。

具体的なコードは詳しい方にお任せします。(C#はわからないので…ごめんなさい)
■No3232に返信(琴さんの記事)
> ■No3230に返信(YUSKさんの記事)
>>あう〜・・・。全然分かりません・・・。
>>土曜日の朝から考えているんですが・・・(ずっとではありません。一日6時間くらい(ぇ)。
>>う〜〜〜ん。
>>すいません。コードをのせていただけないでしょうか?
>>ダメならまた自分で考えます。
>>
>>>※フローチャートとは、ソースコードを1行ごとに言葉にして、処理の通り道を線でつないで図解したものです。
>> >上記の質問形式はフローチャートとは呼べませんので注意してくださいね。
>>そうなんですか!?初めて知りました(おい
>>
>>プログラミングって奥が深いですよね〜。
>
> 「保存されている時・保存されていない時」というのは「ファイルの内容(初期状態)が変更されていない時・変更されている時」に言い換えることができます。
> (ここの「変更されている」というのは「ファイルを新規に作成した場合」と「既存のファイルを編集した場合」を含みます)
>
> まず、Bool型の変数(フラグ)を用意し、初期値(起動時・ファイル読み込み時)はTRUE(保存済み)にしておきます。
> そして、テキストの内容に変更が加えられたらフラグをFALSE(未保存)にします。
>
> あとは「閉じる」が押された時にフラグの内容を見てFALSEであればNo.3206でりょうさんが書かれたような処理でファイルの保存を聞くようにすればいいでしょう。
> 保存が成功したらフラグをTRUEに戻しておくのも大切です(でないと閉じるたびに保存を聞かれるかと思います)。
>
> 具体的なコードは詳しい方にお任せします。(C#はわからないので…ごめんなさい)

あと。ちなみに、新規作成の機能はありますよね。
でしたら、保存されていないときに新規作成のボタンが押されることも考えておかないといけませんよ。
■No3234に返信(りょうさんの記事)
> ■No3232に返信(琴さんの記事)
>>■No3230に返信(YUSKさんの記事)
> >>あう〜・・・。全然分かりません・・・。
> >>土曜日の朝から考えているんですが・・・(ずっとではありません。一日6時間くらい(ぇ)。
> >>う〜〜〜ん。
> >>すいません。コードをのせていただけないでしょうか?
> >>ダメならまた自分で考えます。
> >>
> >>>※フローチャートとは、ソースコードを1行ごとに言葉にして、処理の通り道を線でつないで図解したものです。
> >> >上記の質問形式はフローチャートとは呼べませんので注意してくださいね。
> >>そうなんですか!?初めて知りました(おい
> >>
> >>プログラミングって奥が深いですよね〜。
>>
>>「保存されている時・保存されていない時」というのは「ファイルの内容(初期状態)が変更されていない時・変更されている時」に言い換えることができます。
>>(ここの「変更されている」というのは「ファイルを新規に作成した場合」と「既存のファイルを編集した場合」を含みます)
>>
>>まず、Bool型の変数(フラグ)を用意し、初期値(起動時・ファイル読み込み時)はTRUE(保存済み)にしておきます。
>>そして、テキストの内容に変更が加えられたらフラグをFALSE(未保存)にします。
>>
>>あとは「閉じる」が押された時にフラグの内容を見てFALSEであればNo.3206でりょうさんが書かれたような処理でファイルの保存を聞くようにすればいいでしょう。
>>保存が成功したらフラグをTRUEに戻しておくのも大切です(でないと閉じるたびに保存を聞かれるかと思います)。
>>
>>具体的なコードは詳しい方にお任せします。(C#はわからないので…ごめんなさい)
>
> あと。ちなみに、新規作成の機能はありますよね。
> でしたら、保存されていないときに新規作成のボタンが押されることも考えておかないといけませんよ。

話がややこしくなってきましたね。
YUSKさん、何がわからないのか、詳しく教えていただけませんか。
何をどうしたいが、何ができないというかんじで。
@まずフラグを準備する
Dim HozonFlg as Boolean

Aフォームロードイベントでフラグを初期化
HozonFlg = False

B各テキストのテキストチェンジのイベントでフラグを立てる
HozonFlg = True

C保存が終了したときはフラグを戻す
HozonFlg = False

D終了時はフラグをチェックする。
If HozonFlg = True then
'保存確認メッセージ
End If

以上でよろしいかと。
あと私が読んでて気になるのは、
プロパティ
イベント
メソッド
等の初歩的な所を勉強しないで、プログラムを作ろうとしているのではないかと
いうことです。
最低限プログラム作成に必要な知識は身につけましょう。
なんだかいろいろレスが・・・。
>あと。ちなみに、新規作成の機能はありますよね。
>でしたら、保存されていないときに新規作成のボタンが押されることも考えておかないといけませんよ。

新規作成は、新しく表示(?)するので、大丈夫だと思います。

え〜と。リッチテキストボックスの中身(?)が変更されている時、閉じるを押したらファイルが変更されています。ファイルを保存しますか、みたいなのを出したいんです。

>@まずフラグを準備する
>Dim HozonFlg as Boolean

>Aフォームロードイベントでフラグを初期化
>HozonFlg = False

>B各テキストのテキストチェンジのイベントでフラグを立てる
>HozonFlg = True

>C保存が終了したときはフラグを戻す
>HozonFlg = False

>D終了時はフラグをチェックする。
>If HozonFlg = True then
>'保存確認メッセージ
>End If

これって、VBじゃないですか?一応分かりましたけど・・・。

>あと私が読んでて気になるのは、
>プロパティ
>イベント
>メソッド
>等の初歩的な所を勉強しないで、プログラムを作ろうとしているのではないかと
いうことです。
>最低限プログラム作成に必要な知識は身につけましょう。

鋭い所をつかれました・・・。名前は聞いた事がありますが、少し把握しているだけです・・・。
一応勉強はしてますよ〜。

C#になおしたコードは、 DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);

bool HozonFlg;//まずフラグを準備する

HozonFlg = false;//フォームロードイベントでフラグを初期化

HozonFlg = true;//各テキストのテキストチェンジのイベントでフラグを立てる

HozonFlg = false;//保存が終了したときはフラグを戻す


if ( HozonFlg == true ) //終了時はフラグをチェックする。
{
// 保存確認メッセージ
}
なんですけど、
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
if(result == DialogResult.Yes)
{
if (filename != "")
richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);
else
{
saveFileDialog1.Filter = "リッチ テキスト形式|*.rtf|全てを表示|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
filename = saveFileDialog1.FileName;
richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);
HozonFlg = false;//保存が終了したときはフラグを戻す
}
}
}
else if(result == DialogResult.No)
{
//選択しなかった場合。
}
else
{
//キャンセルした場合。
}
}
の、どこにはればいいんですか?
最後まですいません。
よろしくお願いします。
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{

----!ここから
If (HozonFlg == True)
 {
---- !ここまで
DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
if(result == DialogResult.Yes)
{
if (filename != "")
{
richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);
}
else
{
saveFileDialog1.Filter = "リッチ テキスト形式|*.rtf|全てを表示|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
filename = saveFileDialog1.FileName;
richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);
HozonFlg = false;//保存が終了したときはフラグを戻す
}
}
}
else if(result == DialogResult.No)
{
//選択しなかった場合。
}
else
{
//キャンセルした場合。
}
!ここも
}
!ここも
}

>鋭い所をつかれました・・・。名前は聞いた事がありますが、少し把握しているだけです・・・。
>一応勉強はしてますよ〜。

VBでもC#でも基本は同じですよ。表現は違いますが。
それを少し改造して、以下のようになったのですが・・・
bool HozonFlg;//まずフラグを準備する

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (HozonFlg == true)
{
DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
if(result == DialogResult.Yes)
{
if (filename != "")
richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);
else
{
saveFileDialog1.Filter = "リッチ テキスト形式|*.rtf|全てを表示|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
filename = saveFileDialog1.FileName;
richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);
HozonFlg = false;//保存が終了したときはフラグを戻す
}
}
}
else if(result == DialogResult.No)
{
//選択しなかった場合。
}
else
{
//キャンセルした場合。
}
}
//キャンセルした場合。
}
//キャンセルした場合。
}
コンパイルは成功しましたが、機能が働きません・・・。
HozonFlg = false;//フォームロードイベントでフラグを初期化

HozonFlg = true;//各テキストのテキストチェンジのイベントでフラグを立てる

if ( HozonFlg == true ) //終了時はフラグをチェックする。
{
// 保存確認メッセージ
}
もまだ使われていません。
これらはどこにいれるのでしょうか?
すいません。よろしくお願いします。
きいぼーです。
テキストを変更したイベント処理に、
HozonFlg1をTrueにする処理はかかれていますか?

宣言しただけではHozonFlg1はFalseですので、
新規登録の時
既存データの編集時
にHozonFlg1をTrueにする必要があると思います。
> HozonFlg = false;//フォームロードイベントでフラグを初期化
新たにイベントを追加して記述しましょう。

>
> HozonFlg = true;//各テキストのテキストチェンジのイベントでフラグを立てる
これもテキストにイベントを追加して記述しましょう。

>
> if ( HozonFlg == true ) //終了時はフラグをチェックする。
> {
> // 保存確認メッセージ
> }
これは既に終わりました。

これ以上人の手を借りるのはどうかと思います。
何も勉強しないでプログラミングしているとみずから証明しています。

もう一度書きますが、最低限必要なことは勉強しましょう!!!
そうしないと誰も答えてくれませんよ。
みんな忙しいなか書いてくれていますから。
ではここら辺で終わりましょうか・・・。
みなさんありがとうございました。

Tom'sさん
ダメならまた自分で考えます。

っと書いておいたのですが・・・。

>これ以上人の手を借りるのはどうかと思います。
>何も勉強しないでプログラミングしているとみずから証明しています。

何もじゃないんですけど・・・。
自分なりにはかなり調べてんですけど・・・。

まあ他の人から見ればそう見えるんでしょうね・・・。

これって、解決済み!にチェック入れといたほうがいいでしょうか・・・??
>
> 何もじゃないんですけど・・・。
> 自分なりにはかなり調べてんですけど・・・。

ヘルプ?サンプル?技術本?
何をどう調べたのかが見えません。

イベントの追加のしかたやクラスの作成のしかた。
などわからないことを明確に書きましょう。

>
> まあ他の人から見ればそう見えるんでしょうね・・・。

そう見えるのでそう指摘されます。
それが自分でわからないのは自分をよく知らないということです。


>
> これって、解決済み!にチェック入れといたほうがいいでしょうか・・・??

まだ未解決でいいです。

本当に解決したときにこのようにできました。としてくれたほうが後から見る
人に参考になります。

説教くさくて気分が悪いと思いますが、これにこりないで質問してくださいね。
なるほど〜。この話題と関係ないんですが、僕同世代の人いますかね?
12歳で小六(今年4月から中一)の人。
もしいたら、一緒にやりたいな〜。なんて思ったりw
同い年ならなんか会話もはずむと思いまして・・・。

ではでは。
きいぼーです。
イベント処理とか理解されていないようなので、
簡単にサンプル作ってみました。

・Formのロードイベントにて、フラグをFalseに設定
・TextBoxのテキストを変更した時(TextBoxのTextChangedイベント)
 にてフラグをFalseに設定
・ボタンをクリックの時に、フラグがTrueなら保存確認メッセージ表示

のような感じです。

----------------------------------------------
private void Form1_Load(object sender, System.EventArgs e)
{
HozonFlg=false; //まずフラグを準備する
}

private void textBox1_TextChanged(object sender, System.EventArgs e)
{
HozonFlg=true;
}

private void button1_Click(object sender, System.EventArgs e)
{
if (HozonFlg==true)
{
DialogResult result = MessageBox.Show("テキストは保存されていません。保存しますか?", "テキストを保存しますか?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
if(result == DialogResult.Yes)
{
MessageBox.Show ("保存します");
/// 保存処理
}
else if(result == DialogResult.No )
{
MessageBox.Show ("保存しません");
}else {
MessageBox.Show ("保存キャンセル");
/// 保存キャンセル処理
}
}
}
お〜。ありがとうございます。
なんかかなり前進した感じw
あとは、最後の処理だけです。
なんかしらんが連続で保存するのがでてくるw
falseに戻せばいいと思ったんだけど、それだけでは出来ないみたいです。
あと少しなので、がんばります!
>なるほど〜。この話題と関係ないんですが、僕同世代の人いますかね?
>12歳で小六(今年4月から中一)の人。
>もしいたら、一緒にやりたいな〜。なんて思ったりw
>同い年ならなんか会話もはずむと思いまして・・・。

>ではでは。

そうでしたか...書き込みからして学生のイメージは受けましたが、

VBですがこちらの掲示板に同じ年かどうかは知りませんが、同じく小学生が
ワープロを作るといってがんばってますよ。

http://vbnet-iku2.hp.infoseek.co.jp/

あきらめずにがんばってくださいね。
いっいた!?
よっしゃあ〜〜〜。
さっそくその人のHPいくぞ〜〜〜〜。
ってもういってますw
HPよくみますね〜。

でもVBですか〜。少し書き方は違いますが、まあ贅沢いってられませんね。

ではでは^^

ありがとうございました。
■No3267に返信(YUSKさんの記事)
> いっいた!?
> よっしゃあ〜〜〜。
> さっそくその人のHPいくぞ〜〜〜〜。
> ってもういってますw
> HPよくみますね〜。
>
> でもVBですか〜。少し書き方は違いますが、まあ贅沢いってられませんね。
>
> ではでは^^
>
> ありがとうございました。

僕は中三ですけどね。

DOBON.NET | プログラミング道 | プログラミング掲示板