2012-01-07 2 views
0

次のコードフォームのダイアログ結果を取得したいのですが、変数に保存されていません...なぜですか?WindowsフォームDialogResult

マイコード:で、私はthis.DialogResult = DialogResult.OKを設定し、私のForm1Form2

public void xyz() { 
    var dialogResult = new DialogResult(); 
    if (booleanVariable) { 
     var form1 = new Form1(); 
     form1.ShowDialog(); 
     dialogResult = form1.DialogResult; 
    } 
    else { 
     var form2 = new Form2(); 
     form2.ShowDialog(); 
     dialogResult = form2.DialogResult; 
    } 

    if (dialogResult == DialogResult.OK) { 
     ... 
    } 
} 

。 プロセスの最後に、私の変数dialogResultDialogResult.Noneです、なぜですか?

+0

'VARのdialogResultは=新しいDialogResult();'少し奇妙です。 'DialogResult'型は列挙型です。 'new'を全く使う必要はありません。 –

+0

Cody:これは、 'var'のために正しい型にしようとする試みかもしれません。変数型を明示的に宣言する方法がわからないようです。 – Joey

+0

これは変数globalyを宣言しようとする試みで、if内で宣言するとアクセスできないためです。 – kyjan

答えて

1
public void xyz() { 
    var dialogResult = booleanVariable ? new Form1().ShowDialog() : new Form2().ShowDialog(); 

    if (dialogResult == DialogResult.OK) { 
     ... 
    } 
} 
1

はあなたのIF声明でこれを変更しよう:

DialogResult var; 
Form2 qwerty = new Form2(); 
var = qwerty.ShowDialog(); 
MessageBox.Show(var.ToString()); 
関連する問題