C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: メッセージボックスでボタンを2回押さないと終了しない


(過去ログ 176 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■101298 / inTopicNo.1)  メッセージボックスでボタンを2回押さないと終了しない
  
□投稿者/ エビ (6回)-(2023/01/31(Tue) 17:29:20)

分類:[C#] 

こんばんは。

NET Frameworck4.8のC#を覚えようとしています。

元のソースコードはVBです、それをC#に「AI Programmer」というサイトを見つけて(書かせたいコードの処理)コードを生成しました。https://aiprogrammer.hashlab.jp/

【問題が出るソースコード】

Form1.cs
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult a = MessageBox.Show("アプリを終了しますか?", "質問", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2);

                if(a == DialogResult.OK)
            {
                //「はい」が選択された時
                Console.WriteLine("FormClose");
        //Application.Exit();
            }
                else if (a == DialogResult.Cancel)
            {
                //「いいえ」が選択された時
                Console.WriteLine("「いいえ」が選択されました");
                e.Cancel = true;
            }
        }

と

private void Button7_Click(object sender, EventArgs e)
        {
            //メッセージボックスを表示する
            DialogResult result = MessageBox.Show("アプリを終了しますか?",
                "質問",
                MessageBoxButtons.OKCancel,
                MessageBoxIcon.Asterisk,
                MessageBoxDefaultButton.Button2);

            //何が選択されたか調べる
            if (result == DialogResult.OK)
            {
                //「はい」が選択された時
                Console.WriteLine("Exit");
                Application.Exit();
            }
            else if (result==DialogResult.Cancel)
            {
                //「いいえ」が選択された時
                Console.WriteLine("「いいえ」が選択されました");
                
            }
        }

//「はい」が選択された時
                Console.WriteLine("Exit");
                Application.Exit();
この部分をButton7押して、OKを2回押さないとApplication.Exit();が終了しません。

VBでの動作は一回押したら出来るのですが、C#の場合・・・2回押さないと終了しない状況となっております。

Form1_FormClosingでもApplication.Exit();を入れるとそこでも2回OK押すことになります。

C#はまだ覚えたばかりの為、AI Programmerを見つけてコードを生成し、出来たのですがhttps://dobon.net/vb/dotnet/form/msgbox.html
メッセージボックスの作り方(C#)を参考にしました。

【教えて欲しい事】
OK/Cancelで一回で終了させたい事です。
※VBは一回で終了します。

教えてください。お願いいたします。

後もう一つ
AI Programmerの他に何がいいサイトがあれば教えてください。
OpenAIもありましたが登録しないと出来ないみたいです。
他のがもしあったらお願い申し上げます。
何度も質問して申し訳ございませんがお願い申し上げます。

引用返信 編集キー/
■101299 / inTopicNo.2)  Re[1]: メッセージボックスでボタンを2回押さないと終了しない
□投稿者/ ぶなっぷ (300回)-(2023/01/31(Tue) 18:13:15)
「2回押さないと終了しない状況」ではなく、
「2回メッセージボックスが表示されている」のでは?

Button7_Click()内で、Application.Exit();が呼ばれたら、
Form1_FormClosing()が呼ばれて、その中で再びメッセージボックスが表示されて
いませんか?

双方のメッセージボックスの表示文字列を
 「アプリを終了しますか?」
 「ほんとに終了しますか?」
など、別の文字列にしてみたら、分かるかと思います。

もしそうであるなら、Button7_Click()は、無条件で
Application.Exit(); 呼ぶだけでいいはずです。

引用返信 編集キー/
■101300 / inTopicNo.3)  Re[2]: メッセージボックスでボタンを2回押さないと終了しない
□投稿者/ エビ (7回)-(2023/01/31(Tue) 18:29:27)
No101299 (ぶなっぷ さん) に返信

回答ありがとうございます。、
> 「2回メッセージボックスが表示されている」のでは?
そうでした。
> Button7_Click()内で、Application.Exit();が呼ばれたら、
> Form1_FormClosing()が呼ばれて、その中で再びメッセージボックスが表示されて
> いませんか?
確かになってました。
> 双方のメッセージボックスの表示文字列を
> 「アプリを終了しますか?」
> 「ほんとに終了しますか?」
> など、別の文字列にしてみたら、分かるかと思います。
>
> もしそうであるなら、Button7_Click()は、無条件で
> Application.Exit(); 呼ぶだけでいいはずです。

ぶなっぷ さんありがとうございました。

ButtonクリックにApplication.Exit();いれたら解決しました。

後もう一つのAI ProgrammerとOpenAI以外に何がありますか?
引用返信 編集キー/
■101301 / inTopicNo.4)  Re[1]: メッセージボックスでボタンを2回押さないと終了しない
□投稿者/ 魔界の仮面弁士 (3551回)-(2023/01/31(Tue) 18:40:23)
No101298 (エビ さん) に返信
> 元のソースコードはVBです、それをC#に「AI Programmer」というサイトを見つけて(書かせたいコードの処理)コードを生成しました。

コードの自動生成が目的ではなく、VB / C# の変換が目的というのであれば:

https://converter.telerik.com/
https://icsharpcode.github.io/CodeConverter/
https://www.developerfusion.com/tools/
http://www.carlosag.net/Tools/CodeTranslator/
https://www.dotnetspider.com/convert/


> else if (a == DialogResult.Cancel)
> {
>   //「いいえ」が選択された時
OK / Cancel のメッセージなのに、
コメントが はい / いいえ になっていますよ。
引用返信 編集キー/
■101302 / inTopicNo.5)  Re[2]: メッセージボックスでボタンを2回押さないと終了しない
□投稿者/ エビ (8回)-(2023/01/31(Tue) 23:50:36)
No101301 (魔界の仮面弁士 さん) に返信
> ■No101298 (エビ さん) に返信
>>元のソースコードはVBです、それをC#に「AI Programmer」というサイトを見つけて(書かせたいコードの処理)コードを生成しました。
>
> コードの自動生成が目的ではなく、VB / C# の変換が目的というのであれば:
>
> https://converter.telerik.com/
> https://icsharpcode.github.io/CodeConverter/
> https://www.developerfusion.com/tools/
> http://www.carlosag.net/Tools/CodeTranslator/
> https://www.dotnetspider.com/convert/
>
>
>>else if (a == DialogResult.Cancel)
>>{
>>  //「いいえ」が選択された時
> OK / Cancel のメッセージなのに、
> コメントが はい / いいえ になっていますよ。
魔界の仮面弁士 さん
回答ありがとうございます。
コメントの部分き付かずにいました。
サイト使ってみたいと思います。
解決済み
引用返信 編集キー/
■101303 / inTopicNo.6)  Re[3]: メッセージボックスでボタンを2回押さないと終了しない
□投稿者/ 伝説のカレー (70回)-(2023/02/01(Wed) 00:02:23)
No101300 (エビ さん) に返信
> 後もう一つのAI ProgrammerとOpenAI以外に何がありますか?

GitHubのCopilotとか、VisualStudioも最近は予測されるコードを提示してくれたりします
競技プログラミングならAlphaCodeがあります

C#を覚えるのが目的なら入門書を読んだがいんじゃないですかね
基礎を身につける前からAIに丸投げしたらAIがC#を覚えるだけで自分は覚えられないと思いますよ
少なくともいまのAIは間違ったコードも提示してくるんでそれを添削できるレベルにならないと
あまり意味ないような気がします

引用返信 編集キー/
■101304 / inTopicNo.7)  Re[3]: メッセージボックスでボタンを2回押さないと終了しない
□投稿者/ 伝説のカレー (71回)-(2023/02/01(Wed) 08:33:18)
解決済みでした
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -