【问题标题】:C# Form Clicking the red X has to be clicked twice to closeC# 窗体单击红色 X 必须单击两次才能关闭
【发布时间】: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 两次的原因。

标签: c# winforms forms


【解决方案1】:

您的 prompt.ShowDialog() 是在第一次单击红色 X 时执行的代码。由于没有代码可以处理它,所以什么也没有发生。下次您单击红色 X 时,它会退出 Prompt.ShowDialog() 方法。

基本上,showDialog 方法在此行之后立即处于等待状态: prompt.ShowDialog();

在提供输入之前,它位于此处的 return 语句之前: 返回 prompt.ShowDialog() == DialogResult.Cancel ? null : textBox.Text;

这并不能解决您的问题,但它确实很好地阐明了它,您应该能够解决它。

【讨论】:

    【解决方案2】:
    confirmation.DialogResult = DialogResult.OK;
    

    您需要设置确定按钮

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多