2012-06-13 3 views
-1

Как я могу отделить Thread?Как переключить Mainthread в C# Application

Я использовал экземпляр, чтобы запустить LoginForm.cs во-первых, так что My first Thread in App - это файл LoginForm.cs, но я не хочу запускать ThreadForm.cs в Thread больше, после того, как login login, я хочу My app запустите Main Thread в MainInterface.cs, имея в виду, что сначала Thread запускает LoginForm.cs, а затем останавливает Thread на LoginForm.cs, после исправления с помощью исправления, Thread работает в MainInterface.cs.

я был следовать по ниже кода, но LoginForm.cs все еще Главная Тема:

MainInterface.cs

using System; 

public class MainInterface : Form 
{ 
    private static MainInterface Current; 

    private MainInterface() 
    { 
     if (LoginForm.Instance != null) 
     LoginForm.Instance.Close(); 
    } 

    public static MainInterface Instance 
    { 
     get 
     { 
     if (Current == null) 
     { 
      Current = new MainInterface(); 
     } 
     return Current; 
     } 
    } 
} 

LoginForm.cs

using System; 

public class LoginForm: Form 
{ 
    private static LoginForm Current; 

    private LoginForm() 
    { 

     if (MainInterface.Instance != null) 
     MainInterface.Instance.Close(); 
    } 

    public static LoginForm Instance 
    { 
     get 
     { 
     if (Current == null) 
     { 
      Current = new LoginForm(); 
     } 
     return Current; 
     } 
    } 
} 

Программа .cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Forms; 

namespace Myapp 
{ 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() 
     { 

      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      LoginForm.Instance.ShowDialog(); 

     } 
    } 
} 
+4

но кроме того, вы можете сделать вопрос более ясным? я не понимаю, что вы пытаетесь сделать. – eyossi

+1

. Вы не используете никакие «рабочие» темы, которые я предполагаю. Это просто, что вы хотите показать другой диалог/форму после успешного входа в систему. Пожалуйста, исправьте, если я ясно? –

ответ

0

Program.cs

using (Login login = new Login()) 
     { 
      login.ShowDialog(); //Close this form after login is correct in login form button_click 
     } 
     if (isValiduser == true) //Static variable created in application to check user 
     {   
      Application.Run(new MainInterface()); 

     } 

Войти Форма нажмите событие

private void btnLogin_Click(object sender, EventArgs e) 
      { 
       if(isValiduser == true) 
       { 
        this.Close(); 
       } 
      else 
       { 
        //else part code 
       } 
      } 
+1

Не было бы лучше использовать DialogResult, возвращенный из ShowDialog, а не публичное статическое поле? – stuartd

+0

Извините, переменная isValiduser объявляется в форме входа или Program.cs? – user1417068

+0

вы можете объявить его в program.cs или можете сделать другой класс для хранения данных для входа, например: user_id, Name и т. Д., Так что вы можете получить доступ к нему по всему миру – Nighil

Смежные вопросы