2015-02-14 2 views
-1

У меня возникла проблема со мной .show(), она скроет предыдущую страницу, но когда она появится, чтобы показать новую страницу, она появится на секунду, а затем остановит отладку для программы мгновенно. вот код первой страницы.Как показать новую форму

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.OleDb; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     private OleDbConnection connection = new OleDbConnection(); 
     public Form1() 
     { 

      InitializeComponent(); 
      connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Martha\Documents\Database2.accdb; 
     Persist Security Info=False;"; 
     } 
     private void Form1_Load(object sender, EventArgs e) 
     { 
      try 
      { 
       connection.Open(); 
       connection.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Error " + ex); 
      } 
     } 
     private void button1_Click(object sender, EventArgs e) 
     { 
      OleDbCommand command = new OleDbCommand(); 
      command.Connection = connection; 
      command.CommandText = "SELECT * FROM StudentLogin WHERE  Username='" + TXT_NAME.Text + "'AND Password='" + TXT_PASSWORD.Text + "'"; 

      OleDbDataReader reader = command.ExecuteReader(); 
      int count = 0; 
      while (reader.Read()) 
      { 
       count = count + 1; 
      } 
      if (count == 1) 
      { 
       MessageBox.Show("Username and Password are Correct"); 
       connection.Close(); 
       connection.Dispose(); 
       this.Close(); 
       PAGE_MAIN mainpage1 = new PAGE_MAIN(); 
       mainpage1.ShowDialog(); 
      } 
      else 
      { 
       MessageBox.Show("Username and Password are incorrect"); 
      } 
     } 
     private void button2_Click(object sender, EventArgs e) 
     { 
      if (HELP_LOGIN.Visible == true) 
      { 
       HELP_LOGIN.Hide(); 
      } 
      else 
      { 
       HELP_LOGIN.Show(); 
      } 
     } 
    } 
} 

ответ

1

Вы должны использовать ShowDialog() вместо этого на Show()

позже вы можете использовать DialogResult формы, чтобы понять, если Войти был успешным или нет

+0

@rezaRahmait Спасибо за быстрый ответ, но мне кажется, что я не дал возможность для ShowModal. Есть ли что-то, что мне нужно сделать раньше? –

+0

@MarthaMason Извините, что это 'ShowDialog()' (переключение между языками программирования сделает для меня много трудностей) – RezaRahmati

+0

@ResaRahmait Спасибо! Сработало! Нет проблем, я достаточно борюсь с одним! –

1

Используйте метод ShowDialog(). Она возвращает DialogResult, который указывает на то, как диалог был закрыт

var dialogResult = HELP_LOGIN.ShowDialog(); 

if (dialogResult == DialogResult.OK) 
    MessageBox.Show ("User clicked OK button"); 
else if (dialogResult == DialogResult.Cancel) 
    MessageBox.Show ("User clicked Cancel button"); 
Смежные вопросы