【发布时间】:2015-02-02 15:38:36
【问题描述】:
public static class Prompt
{
public static string ShowDialog(string text, string caption)
{
Form prompt = new Form();
prompt.Width = 435;
prompt.Height = 122;
prompt.FormBorderStyle = FormBorderStyle.FixedDialog;
prompt.Text = caption;
prompt.StartPosition = FormStartPosition.CenterScreen;
Label textLabel = new Label() { Left = 10, Top=10, Width=400, Text=text };
TextBox textBox = new TextBox() { Left = 10, Top=30, Width=400 };
Button confirmation = new Button() { Text = "Ok", Left=300, Width=100, Top=52 };
confirmation.Click += (sender, e) => { prompt.Close(); };
prompt.Controls.Add(textBox);
prompt.Controls.Add(confirmation);
prompt.Controls.Add(textLabel);
prompt.AcceptButton = confirmation;
prompt.ShowDialog();
return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : null;
}
}
我创建了这个类,所以如果用户点击确定按钮,它会返回文本框的值,但如果他们点击关闭,它会返回 null。它有效,唯一的问题是红色 x 和 ok 按钮都需要单击两次才能真正关闭表单。我该如何解决这个问题?
【问题讨论】:
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。
-
这不是一个微不足道的问题,它充其量只是相当基本的@SKD4 也许你应该开始使用称为
GOOGLE的免费工具 -
@AndyKorneyev 我对其进行了编辑以使其更具体。
-
你给
ShowDailog打了两次电话。这就是为什么您必须点击 X 两次的原因。