C#MetroFrameWork如何关闭MetroForm

时间:2016-09-30 10:21:53

标签: c# user-interface

你好我正在使用metroframework UI使用这个library但是我无法关闭一个winform的This.Close();对我不起作用,在MySQL select查询得到结果后它会打开另一个winform(Main),然后我想关闭登录表单。我的代码在

之下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using MetroFramework;
using MetroFramework.Forms;


namespace UI
{
    public partial class Form1 : MetroForm


    {

        public static string SetFname = "";
        public static string Setlname = "";
        public Form1()
        {
            InitializeComponent();

        }

        private void metroButton1_Click(object sender, EventArgs e)
        {


            try
            {
                string MyConnection2 = "Server=localhost;Database=Blue;Uid=root;Pwd=test123;";
                //Display query  
                string Query = "select * from blue.members WHERE user_name = '" + this.metroTextBox1.Text + "' AND  user_pass = '" + this.metroTextBox2.Text + "' AND status = 'Activated'";
                MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);
                MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);
                //  MyConn2.Open();  
                //For offline connection we weill use  MySqlDataAdapter class.  

                MySqlDataReader myReader;
                MyConn2.Open();
                myReader = MyCommand2.ExecuteReader();




                int count = 0;
                while (myReader.Read())
                {
                    count = count + 1;


                }
                if (count == 1)
                {



                    string fname = myReader.GetString("firstname");
                    string lname = myReader.GetString("lastname");



                    MetroMessageBox.Show(this, "Log in Success! Welcome, " + fname + " " + lname + "", "Information", MessageBoxButtons.OK, MessageBoxIcon.Question);



                    Datarecords AddNew = new Datarecords();
                    AddNew.ShowDialog();
                    AddNew.TopMost = true;

                    this.Close();

                }
                else
                {

                    MetroMessageBox.Show(this, "Wrong Username & Password.", "Login Failed", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop);
                    MyConn2.Close();

                }


            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }  


        }
    }
}

2 个答案:

答案 0 :(得分:1)

您正在使用AddNew.ShowDialog(); 将其更改为AddNew.Show();,它应该可以正常工作

答案 1 :(得分:0)

好的,所以在环顾四周后我找到了这个解决方法here,看来我的问题不在于metroframework UI,对不起。