使用 "using" 关键字时出现问题

3

我正在使用 "using" 关键字来加载一个对话框,让用户输入网页上的验证码,但问题是对话框会立即打开并关闭。如何确保对话框等待用户输入?

using (Form2 captchaDialog = new Form2(captchaImage))
{
    captchaDialog.Show();
    captchaText = captchaDialog.captcha;
}
2个回答

7
您可以使用ShowDialog方法代替:

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

2
@Dave -- 这将会一直阻塞,直到用户完成操作。 - George Johnston

3

因为您的代码触及了 using 代码块的结尾,该代码块将处理新创建的表单并关闭该表单(如果它已经打开),所以您的表单立即被关闭。您需要使用 ShowDialog 阻止对对话框的调用。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接