2011-07-27 36 views
0

我有一个Windows窗体应用程序,我需要从用户获得输入。我决定使用另一种形式。在我的主窗口中的代码形成这样的:获取从另一个Windows窗体中输入c#

inputPage p = new inputPage(); 
p.Visible = true; 
VBand = p.getValueDouble(); 

我的第二个表(在这里我从用户那里得到输入)很简单。它只包含一个标签,文本框和确定按钮。 我的问题是,当我们确定用户输入值并按下确定按钮后,我想调用getValueDouble函数(上面的第三行代码)。那我该怎么做? 谢谢..

回答

1

您可能想要使用窗体的ShowDialog()方法。这将导致您的当前功能等待,直到用户单击按钮关闭表单。

inputPage p = new inputPage(); 

DialogResult result = p.ShowDialog(); 

if(result == DialogResult.OK) 
{ 
    VBand = p.getValueDouble(); 
} 

形式确定按钮应该有DialogResult属性设置为DialogResult.OK

+0

如果我写DialogResult.Cancel而不是好 – dnur

+0

@dnur似乎真的:在你的第二个形式,设置了“确定”按钮是“确定”动作,并且“取消”按钮为“取消”动作。 – Tipx

1

假设你inputPage是一种形式:

inputPage p = new inputPage(); 
if(p.ShowDialog() == DialogResult.Ok) 
{ 
    VBand = p.getValueDouble(); 
} 
+0

它不会给出错误,但程序没有意识到我按下了ok按钮 – dnur

+1

在inputPage窗体上,将Save按钮设置为* AcceptButton *作为窗体。 –

0

请看命名约定:类名应以大写字母,以及方法名开始。

你应该做到以下几点:

InputPage p = new InputPage(); 
if (p.ShowDialog(this) == DialogResult.OK) 
{ 
    vBand = p.GetValueDouble(); 
} 

当使用WPF,这看起来如下:

InputPage p = new InputPage(); 
p.Owner = this; 
if (p.ShowDialog() ?? false) 
{ 
    .... 
} 

在WPF中,ShowDialog方法返回一个bool?值可以是nullfalse (对话框被取消或以其他方式关闭而没有用户选择)或true如果用户按下确定。

if (... ?? ...)可以改写为:

bool? ret = p.ShowDialog(); 
if (ret.HasValue() && ret) 
{ 
} 
相关问题