你好我正在使用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);
}
}
}
}
答案 0 :(得分:1)
您正在使用AddNew.ShowDialog();
将其更改为AddNew.Show();
,它应该可以正常工作
答案 1 :(得分:0)
好的,所以在环顾四周后我找到了这个解决方法here,看来我的问题不在于metroframework UI,对不起。