2011-06-29 26 views
3

我正在使用“使用”关键字加载用户从网页输入验证码的对话框,但问题是对话框正在加载和立即关闭。我怎样才能确保对话框等待用户输入?使用“使用”关键字时出现问题

using (Form2 captchaDialog = new Form2(captchaImage)) 
{ 
    captchaDialog.Show(); 
    captchaText = captchaDialog.captcha; 
} 

回答

7

你可以使用ShowDialog方法代替:

using (Form2 captchaDialog = new Form2(captchaImage)) 
{ 
    captchaDialog.ShowDialog(); 
    captchaText = captchaDialog.captcha; 
} 
+2

@Dave - 这将阻塞,直到用户完成。 –

3

因为你的代码打using块,将部署新创建的窗体,这反过来又关闭表单后,你的形式被立即关闭如果它是开放的。您必须使用ShowDialog阻止您拨打对话。

using (var dialog = new Form2(captchaImage)) 
{ 
    if(dialog.ShowDialog() == DialogResult.OK) 
    { 
     captchaText = captchaDialog.captcha; 
    } 
}