FM7 Ответов: 5

закройте форму входа в систему и откройте основную форму


привет , у меня есть форма в качестве формы входа для ввода идентификатора и пароля.
если пользователь вводит правильный id/pass, я хочу закрыть форму входа в систему и открыть основную форму.
как это сделать?
я написал этот код, но обе формы закрыты!!

if(//check ID/pass in DB......)
{
this.close();
form2 frm=new form2();
frm.showDialog();
}
пожалуйста, помогите, с наилучшими пожеланиями

Perić Željko

Вам нужно вызвать форму входа в систему из основной формы. Когда пользователь вводит пароль, форма входа автоматически закрывается,а основная форма продолжает работать.
Посмотрите на решение № 5

5 Ответов

Рейтинг:
2

JF2015

Привет,

попробуйте этот код:

if(//check ID/pass in DB......)
{
this.Hide();
form2 frm=new form2();
frm.ShowDialog();
this.Show();
}


Рейтинг:
2

Oshtri Deka

проблема заключается в заключительном заявлении формы входа в систему.
Мой совет-вызвать форму входа в систему из другого места (например, основной метод), и если вход в систему будет успешным только тогда, вы должны вызвать требуемую форму.
Возьмем этот код в качестве примера:

//Application's entry point
[STAThread]
Main(string[]args)
{
    LoginForm loginFrm = new LoginForm();
    //if login successful proceed
    if(loginFrm.ShowDialog() == DialogResult.OK)
    {
        AnotherForm frm = new AnotherForm();
        frm.Show();
    }
    //if not, sorry no form. 
}


Рейтинг:
2

hamid_mohammadi

if(Check user & pass)
{
    this.Hide();
    new MainForm().ShowDialog();
}


FM7

я хочу закрыть форму, а не прятаться.
проблема:форма form1 и Form2 является родителем ребенка.
как изменить родительскую и дочернюю формы на другие?

Рейтинг:
0

ridoy

if(//check ID/pass in DB......)
{
this.close();
form2 frm=new form2();
frm.Show();
}


Рейтинг:
0

Perić Željko

Привет,
это простое приложение win form, написанное в ide sharp Development, C# .Net 4. o.

он состоит из основной формы, в которой находятся эти элементы управления :
метка 1, содержащая сообщение "введенный код доступа"
label2, содержащий сообщение "доступ разрешен" или "доступ запрещен"
textBox1, переименованный в "пароль" и установленный только для чтения
button1, со свойством text, установленным в " ok"

и Логинформ в котором находятся эти элементы управления :
textbox1, переименованный в " пароль"
кнопка button1 , при этом свойства text значение "продолжить"

Когда пользователь запускает программу, сначала отображается диалоговое окно входа в систему, ожидающее ввода пароля пользователем. Когда вводится "пароль", диалоговое окно формы входа закрывается, а основная форма отображается и становится активной формой приложения.
Если введенный пароль недействителен, то метка 2 изменится на сообщение" Доступ запрещен".,
или, если введенный пароль верен, метка2 изменится на сообщение "доступ разрешен", а текстовое свойство button1 изменится на" Продолжить " или
"пробовать снова".
Когда пользователь "повторит попытку" ввести пароль, снова появится диалоговое окно входа в систему.
Основная форма все еще видна, но не активна и недоступна, когда пользователь вводит ее
новый пароль или закрывает Диалог входа в систему.
Вот весь открытый исходный код, необходимый для применения. Обратите внимание .Чистая версия 4.0.

Форму mainform.в CS*

/*
 * Created by SharpDevelop.c# , .Net Framework 4.0
 * User: Perić Željko
 * Date: 28.9.2012
 * Time: 11:53
 *
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Log_In_Example
{
    /// <summary>
    /// Description of MainForm.
    /// Show Log In Dialog Form and check password
    /// entered by user.
    /// </summary>
    public partial class MainForm : Form
    {
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            //
            // call ShowLogInDialog()
            //
            ShowLogInDialog();
        }

        void ShowLogInDialog()
        {
            //
            // show Log In Dialog
            //

            // correct password
            const string correct_ID = "1234567890";
            //
            LogInForm LogCheck = new LogInForm();
            //
            // ShowDialog() is used instead of Show()
            // because this way dialog stays active on top of all others
            // forms and only accessible Form of this application.
            //
            LogCheck.ShowDialog();
            //
            // set value of password.Text (textBox1) of Main Form,
            // to entered value in LogInForm.
            //
            password.Text = LogCheck.password.Text;
            if (correct_ID == password.Text)
            {
                label2.Text = "Access Granted";
                button1.Text ="continue";
            }
            else
            {
                label2.Text = "Access Denied";
                button1.Text ="try again";
            }
            //
            LogCheck.Dispose();
            Refresh();
        }
        void Button1Click(object sender, EventArgs e)
        {
            //
            // If Entered "password" was ok close Main Form
            // else try again to enter password
            // here you can count how many times user made error
            // and prevent another try.
            // Wach out where You are going to declare variable for that.
            //
            if (button1.Text == "continue")
            {
                Close();
            }
            else if (button1.Text == "try again")
            {
                ShowLogInDialog();
            }
        }
    }
}


MainForm. Designer. cs

/*
 * Created by SharpDevelop.
 * User: Perić Željko
 * Date: 28.9.2012
 * Time: 11:53
 * 
 */
namespace Log_In_Example
{
	partial class MainForm
	{
		/// <summary>
		/// Designer variable used to keep track of non-visual components.
		/// </summary>
		private System.ComponentModel.IContainer components = null;
		
		/// <summary>
		/// Disposes resources used by the form.
		/// </summary>
		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
		protected override void Dispose(bool disposing)
		{
			if (disposing) {
				if (components != null) {
					components.Dispose();
				}
			}
			base.Dispose(disposing);
		}
		
		/// <summary>
		/// This method is required for Windows Forms designer support.
		/// Do not change the method contents inside the source code editor. The Forms designer might
		/// not be able to load this method if it was changed manually.
		/// </summary>
		private void InitializeComponent()
		{
			this.password = new System.Windows.Forms.TextBox();
			this.label1 = new System.Windows.Forms.Label();
			this.button1 = new System.Windows.Forms.Button();
			this.label2 = new System.Windows.Forms.Label();
			this.SuspendLayout();
			// 
			// password
			// 
			this.password.Location = new System.Drawing.Point(11, 39);
			this.password.MaxLength = 10;
			this.password.Name = "password";
			this.password.ReadOnly = true;
			this.password.Size = new System.Drawing.Size(268, 31);
			this.password.TabIndex = 10;
			this.password.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
			// 
			// label1
			// 
			this.label1.Font = new System.Drawing.Font("Georgia", 15.75F, ((System.Drawing.FontStyle)(((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic) 
												| System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(204)));
			this.label1.Location = new System.Drawing.Point(12, 9);
			this.label1.Name = "label1";
			this.label1.Size = new System.Drawing.Size(267, 27);
			this.label1.TabIndex = 1;
			this.label1.Text = "Entered Access Code";
			this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			// 
			// button1
			// 
			this.button1.Location = new System.Drawing.Point(12, 133);
			this.button1.Name = "button1";
			this.button1.Size = new System.Drawing.Size(267, 37);
			this.button1.TabIndex = 2;
			this.button1.Text = "ok";
			this.button1.UseVisualStyleBackColor = true;
			this.button1.Click += new System.EventHandler(this.Button1Click);
			// 
			// label2
			// 
			this.label2.Location = new System.Drawing.Point(12, 93);
			this.label2.Name = "label2";
			this.label2.Size = new System.Drawing.Size(267, 27);
			this.label2.TabIndex = 3;
			this.label2.Text = "Access Code";
			this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
			// 
			// MainForm
			// 
			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
			this.ClientSize = new System.Drawing.Size(292, 175);
			this.Controls.Add(this.label2);
			this.Controls.Add(this.button1);
			this.Controls.Add(this.label1);
			this.Controls.Add(this.password);
			this.Font = new System.Drawing.Font("Georgia", 15.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(204)));
			this.MaximizeBox = false;
			this.Name = "MainForm";
			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
			this.Text = " Log In Example";
			this.ResumeLayout(false);
			this.PerformLayout();
		}
		private System.Windows.Forms.Label label2;
		private System.Windows.Forms.Button button1;
		private System.Windows.Forms.Label label1;
		private System.Windows.Forms.TextBox password;
	}
}



LoginForm, который будет.в CS

/*
 * Created by SharpDevelop. C#, ,Net Framework 4.0
 * User: Perić Željko
 * Date: 28.9.2012
 * Time: 11:54
 *
 */
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Log_In_Example
{
    /// <summary>
    /// Dialog for accepting Log ID from user
    /// </summary>
    public partial class LogInForm : Form
    {
        public LogInForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

        }

        void Button1Click(object sender, EventArgs e)
        {
            //
            // Close Log In Form
            //
            Close();
        }

        void PasswordKeyPress(object sender, KeyPressEventArgs e)
        {
            //
            // If user press "Enter" inside
            // password text box LogIn Form Closes
            //
            if (e.KeyChar == (char) Keys.Enter)
            {
                Close();
            }
        }
    }
}


LoginForm, который будет.Дизайнер.в CS*

/*
 * Created by SharpDevelop.
 * User: Perić Željko
 * Date: 28.9.2012
 * Time: 11:54
 * 
 */
namespace Log_In_Example
{
	partial class LogInForm
	{
		/// <summary>
		/// Designer variable used to keep track of non-visual components.
		/// </summary>
		private System.ComponentModel.IContainer components = null;
		
		/// <summary>
		/// Disposes resources used by the form.
		/// </summary>
		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
		protected override void Dispose(bool disposing)
		{
			if (disposing) {
				if (components != null) {
					components.Dispose();
				}
			}
			base.Dispose(disposing);
		}
		
		/// <summary>
		/// This method is required for Windows Forms designer support.
		/// Do not change the method contents inside the source code editor. The Forms designer might
		/// not be able to load this method if it was changed manually.
		/// </summary>
		pr