1

フォームの閉じるボタンで問題が発生しました。以前はフォームのキャンセルボタンとして設定していましたが、なしに変更しました。フォームはガイドのように機能します...

フォームがガイドのステップにある場合は、yes-no-messagebox をポップアップしたいと思います。しかし、私が今持っているコードでは、はいまたはいいえをクリックしてもフォームを閉じています。

ボタンのコード:

if (krok <= 5)
{
    if (MessageBox.Show("este ste neurobili vsetko naozaj chcete zavriet okno?", 
        "Pozor", 
        MessageBoxButtons.YesNo, 
        MessageBoxIcon.Warning) == DialogResult.Yes)
    {
        Close();
    }               
}
else Close();
4

2 に答える 2

1

デバッガーはあなたの友達です。あなたの人生を楽にし、ShowDialog ラインを打ち破ってください。

var result = MessageBox.Show...
if (result == DialogResult.Yes)
{
  Close();
}

デバッガーで結果の値を確認します。Close() を使用して行にブレークポイントを配置し、ヒットするかどうかを確認することもできます。そうすれば、その行または他の何かがフォームを閉じているかどうかを確実に知ることができます.

于 2012-08-19T20:10:50.707 に答える
1

すべてのボタンには、 と呼ばれるプロパティがありますDialogResult。このプロパティは、デザイナー ウィンドウまたはコードで直接設定できます。このプロパティの効果は、フォームを閉じて (フォームがモーダルで表示されている場合)、フォーム呼び出しコードにプロパティの値を返すことです。

あなたの場合、このプロパティが (デザイナー ウィンドウで) とは異なるものに設定されていると思われますDialogResult.None。この場合、フォームは Close() と呼ぶものを閉じるかどうかに関係なく閉じます。

于 2012-08-19T20:15:03.357 に答える