1

Hello I'm using the metroframework UI using this library but i cannot close a winform the This.Close(); is not working for me, Its a log in form after the MySQL select query gets a result it will open another winform(Main) then i want to close the login form. My code is below

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


        }
    }
}
KaoriYui
  • 912
  • 1
  • 13
  • 43

2 Answers2

1

You are using AddNew.ShowDialog(); Change that to AddNew.Show(); and it should work fine

Pepernoot
  • 3,409
  • 3
  • 21
  • 46
  • Hi i already change it to show() but still the this.Close() is not working i tried to put the Login form into a variable and still not working. – KaoriYui Sep 30 '16 at 10:51
0

Ok so after looking around i found this workaround here, it seems my problem is not with the metroframework UI sorry for that.

Community
  • 1
  • 1
KaoriYui
  • 912
  • 1
  • 13
  • 43