0

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

请帮我解决这个错误。

4

1 回答 1

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

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

于 2012-06-09T12:08:06.007 回答