1
private void Form1_Load(object sender, EventArgs e)
   {
         if (count == 2)
            {
                MessageBox.Show("Congrats You Score is : " + Marks, "Result", MessageBoxButtons.OK);
                SendKeys.Send("%{F4}");//tried Application.Exit() this.Close();

            }
            string choice = src.ReadLine();
            string ques = srq.ReadLine();
            opt = choice.Split('\t'); 
            label1.Font = new Font("Times New Roman", 15);
            label1.Text = ques;
            ch1.Font = new Font("Times New Roman", 15);
            ch1.Text = opt[0];
            ch2.Font = new Font("Times New Roman", 15);
            ch2.Text = opt[1];
            ch3.Font = new Font("Times New Roman", 15);
            ch3.Text = opt[2];
            ch4.Font = new Font("Times New Roman", 15);
            ch4.Text = opt[3];            
         }

GUI で簡単なクイズを作成しようとしていますが、これは宿題ではありません。ところで、コンソール クイズ プログラムを作成しましたが、GUI で実行したいと考えています。私は初心者で、ネットをよく検索して、この Windows フォームを作成しようとしています。

private void button1_Click(object sender, EventArgs e)
    {

        if (ch1.Checked == false && ch2.Checked==false && ch3.Checked==false && ch4.Checked==false)
        {
            MessageBox.Show("Please Choose An Answer", "Error", MessageBoxButtons.OK,MessageBoxIcon.Error);

        }
        else if (ch1.Checked){
            check(ch1);
           // MessageBox.Show("Marks : "+Marks);
            ++count;
            Form1_Load(new Object(), new EventArgs());
            ch1.Checked = false;


        }
        else if(ch2.Checked){
            check(ch2);
            ++count;
            Form1_Load(new Object(), new EventArgs());
            ch2.Checked = false;

        }
        else if(ch3.Checked){
            check(ch3);
            ++count;
            Form1_Load(new Object(), new EventArgs());
            ch3.Checked = false;
        }
        else if (ch4.Checked){
            check(ch4);
            ++count;
            Form1_Load(new Object(), new EventArgs());
            ch4.Checked = false;
        }
    }

上記のメソッドは、新しい質問とそのオプションをロードし続け、[次へ] ボタンが押された後です。

ここで、カウントが 2 またはそれ以上になるとクイズを終了させたいと考えています。私は試しましthis.Close()SendKey,Environment.Exit(0, inputsimulator(はい.dll、名前空間を使用してファイルをダウンロードし、その参照を追加しました)も機能しません。

またinputsimulatorはアプリ選択時のみ動作するというデメリットがあります... sendkeysアプリ選択の有無に関わらず動作するので良くないのでしょうか...

マウス クリックなどのイベントが機能するために必要であることは理解していますthis.close()が、クイズにスコアを表示し、すべての質問に回答した後に自動的に終了するようにしたい...

現在、クイズは終了せず、問題とオプションが読み取られるファイルに何も残っていないため、例外がスローされます......

次のリンクに アクセスしましたLink1 Link2 Link3

4

2 に答える 2

0

最初に count varible の値を確認してください。 count 変数が two とは異なる値を保持していると思います。これが、 count 変数の値が 2 に等しい場合にのみアプリケーションを閉じるように命令しているため、アプリケーションが閉じていない理由です。

カウント変数に問題があることを確認するには、2 に等しいかどうかを確認する前に、カウント変数の値を 2 に設定してみてください。それ以外の場合は、デバッグ モードを使用してこれをデバッグできます

  count= 2 ; // Set count to two , it doesn't matter where you set it to two , however it has to be set to two before you call this code if you really need to exit the program when you call this code.
     if (count == 2)
        {
            MessageBox.Show("Congrats You Score is : " + Marks, "Result", MessageBoxButtons.OK);
            SendKeys.Send("%{F4}");//tried Application.Exit() this.Close();

        }
于 2013-06-22T04:29:19.003 に答える