页面加载时打开两个窗口

本文关键字:两个 窗口 加载 | 更新日期: 2023-09-27 18:36:35

在Windows应用程序中,我正在创建两个表单,分别名为Form1Configuration_Form。首先,我正在加载Configuration_Form.在此表单中,我检查与 txt 文件的连接。如果 txt 文件有一些数据,则表示它将加载Form1 .否则Configuration_Form不会加载任何内容。

现在我有一个问题,假设txt文件有一些数据,那么这意味着它将加载Form1并打开另一个空表单。我只想显示Form1,而不是空的形式。如何阻止该空表单?

这是我的部分代码:

      public partial class Configuration_Form : Form
{
    Form1 form = new Form1();
    public Configuration_Form()
    {
        StreamReader tr = new StreamReader(Application.StartupPath + "''" + "config.txt");
        string config = tr.ReadToEnd();
        if (config.Replace("'r'n", string.Empty) == "")
        {
            tr.Close();
            InitializeComponent();
        }
        else
        {
            form.Show();
        }
    }
    ///////////////////////////
   private void btn_submit_Click(object sender, EventArgs e)
    {
        try
        {
            if ((txtIP.Text != "") && (txtdatabase.Text != "") && (txtuser.Text != "") && (txtpass.Text != ""))
            {
                StreamWriter sr = new StreamWriter(Application.StartupPath + "''" + "config.txt");
                sr.Write(Convert.ToString((txtIP.Text) + ";" + (txtport.Text) + ";" + (txtdatabase.Text) + ";" + (txtuser.Text) + ";" + (txtpass.Text)));
                sr.WriteLine();
                sr.Close();
                this.Hide();
                form.Show();
            }
            else
            {
                DialogResult msg = MessageBox.Show("All are mandatory fileds!", "SBS-BIO-CONFIG Administrator", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                if (Convert.ToBoolean(msg) == true)
                {
                    this.Show();
                }
            }
        }
        catch (Exception e1)
        {
            MessageBox.Show("'" + e1.Message + "'");
        }
    }

这是Form1代码:

    public partial class Form1 : Form
{
    MySqlConnection con;
    MySqlCommand cmd;
    MySqlDataAdapter DA;
    MySqlDataReader DR;
    DataSet DSS;
    #region Form_Load
    public Form1()
    {
        InitializeComponent();
    }

这是我Program.cs代码:

   namespace BIO_PUNCH_UPDATE
   {
static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Configuration_Form());
    }
}
}

请帮我修复此错误。

页面加载时打开两个窗口

我想您需要根据配置数据加载其中一个表单。如果是这样,那么这里是代码:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form form;
        StreamReader tr = new StreamReader(Application.StartupPath + "''" + "config.txt");
        string config = tr.ReadToEnd();
        tr.Close();
        if (string.IsNullOrWhiteSpace(config))
        {
            form = new Configuration_Form();
        }
        else
        {
            form = new Form1();
        }
        Application.Run(form);
    }

此外,如果您需要其中一种形式的配置数据,则可以将配置字符串作为构造函数参数传递。