我有一个模态表单 ShowDialog 我想关闭表单,如果 1 按下按钮有效2 如果静态变量中的值发生变化无效

问题描述

我有一个 Modal ShowDialog 表单。尝试关闭创建的表单,如果发生以下两件事之一 按下表单上的 1 个按钮或 2 静态变量中的值发生变化。到目前为止,该按钮有效,我可以使用另一个按钮来检查值的状态并查看更改?如何让第二部分关闭表单?

Main_Menu.cs
  public void OverloadTripearly()
    {
        
        OverloadTripEarly overloadTripEarly = new OverloadTripEarly();
        overloadTripEarly.Owner = this;
        overloadTripEarly.ShowDialog();             
      //  overloadTripEarly.Refresh();
     //   OLTrip = overloadTripEarly; // assign object to enter
    }

OverloadTripEarly.cs code
using System;
using System.Collections.Generic;
using System.ComponentModel;
 using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormTitlepageNew
{
public partial class OverloadTripEarly : Form
{
    public OverloadTripEarly()
    {
        InitializeComponent();  
    }

    private void btnOK_Click(object sender,EventArgs e)
    {
        if (backgroundWorker1.IsBusy)
        {
            backgroundWorker1.CancelAsync();
        }
        else
        {
            this.Close(); // close if button is pressed
            this.Dispose();
        }
    }

    private void OverloadTripEarly_Load(object sender,EventArgs e)
    {

    }

    private void backgroundWorker1_DoWork(object sender,DoWorkEventArgs e)
    {
        do
        {
            
                Thread.Sleep(100);

                GlobalVariables.OverloadTest = NIDMMPXIeSlot5ConsoleApplication.SingleResistance
                 MeasurementApp();
                if (double.IsNaN(GlobalVariables.OverloadTest))
                {
                    GlobalVariables.OverloadFlag = true;
                    this.Close();
                    e.Cancel = true;

                }
                if (backgroundWorker1.CancellationPending)
                {
                    e.Cancel = true;
                    this.Close();
                    return;
                }
            
        } while (double.IsNaN(GlobalVariables.OverloadTest));
    }

    private void backgroundWorker1_ProgressChanged(object sender,ProgressChangedEventArgs e)
    {

    }

    private void backgroundWorker1_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs   e)
    {
        if (e.Cancelled)
        { this.Close();
            this.Dispose();
        }
    }

    private void button1_Click(object sender,EventArgs e)
    {
        GlobalVariables.OverloadTest = NIDMMPXIeSlot5ConsoleApplication.SingleResistance
         MeasurementApp();
        if (double.IsNaN(GlobalVariables.OverloadTest))
        {
            textBox1.Text = "NaN".ToString();
        }
        else
        { textBox1.Text = GlobalVariables.OverloadTest.ToString(); }
    }
}
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)