页面加载时打开两个窗口

时间:2012-06-09 11:40:45

标签: c# asp.net winforms windows-applications

在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());
    }
}
}

请帮我修复此错误。

1 个答案:

答案 0 :(得分:0)

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

    [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);
    }

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