2012-01-07 90 views
0

在下面的代码我想获得一个窗体的对话框结果,但它没有保存到我的变量...为什么?Windows窗体DialogResult

我的代码:

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) { 
     ... 
    } 
} 

在和我Form1Form2我设置this.DialogResult = DialogResult.OK。 在这个过程结束时我的变量dialogResultDialogResult.None,为什么?

+0

'变种的DialogResult =新的DialogResult();'是有点怪。 DialogResult类型是一个枚举。你根本不需要使用'new'。 – 2012-01-07 11:58:51

+0

科迪:这可能是由于'var'导致正确输入的尝试。他们似乎不知道如何显式声明变量类型。 – Joey 2012-01-07 12:06:52

+0

不,这是尝试声明变量globaly,因为如果我在if中声明它,我无法访问它。 – kyjan 2012-01-07 12:10:14

回答

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());