Avatar billede agerled Nybegynder
16. januar 2005 - 19:21 Der er 9 kommentarer

login form lukker ikke

Når jeg trykker login ind knappen på min login form åbner form1 som den skal, men login formen ligger hele tiden i baggrunden. Den lukker ikke sig selv...???


min kode til knappen:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim cnSQL As OracleConnection
        Dim cmSQL As OracleCommand
        Dim drSQL As OracleDataReader
        Dim strSQL As String
        Dim strID As String

        Dim ConnectionString As String = Util.DBConn()

        strSQL = "select * from users where username = '" & txtUsername.Text.Trim & "' and password = '" & txtPassword.Text.Trim & "'"
        cnSQL = New OracleConnection(ConnectionString)
        cnSQL.Open()
        cmSQL = New OracleCommand(strSQL, cnSQL)
        drSQL = cmSQL.ExecuteReader()

        If drSQL.Read = True Then
            Dim Main As New Form1
            Main.ShowDialog()
            Me.Close()
        Else
            MessageBox.Show("Authentication failed...")

        End If
    End Sub
Avatar billede flashit Nybegynder
16. januar 2005 - 19:44 #1
prøv med Me.disposed og ikke me.close
Avatar billede visualdeveloper Nybegynder
16. januar 2005 - 19:53 #2
eller me.hide
Avatar billede burningice Nybegynder
16. januar 2005 - 21:13 #3
... mon ikke fejlen i at du bruger ShowDialog() på din anden form...

prøv

If drSQL.Read = True Then
            Dim Main As New Form1
            Main.Show()
            Me.Close()
        Else
            MessageBox.Show("Authentication failed...")

        End If
Avatar billede agerled Nybegynder
16. januar 2005 - 21:38 #4
hvis jeg laver en Main.Show() lukker hele applicationen bare ned...??
Avatar billede agerled Nybegynder
16. januar 2005 - 21:38 #5
me.hide() giver samme problem som før...
Avatar billede agerled Nybegynder
16. januar 2005 - 21:40 #6
me.disposed virker heller ikke..


andre forslag?
Avatar billede burningice Nybegynder
16. januar 2005 - 22:51 #7
det er fordi at din login-form ligger til grund for hele din application, og når den lukkes, så lukker programmet ned. Dette er en lidt uheldig opbygning.

Du bør istedet lade Form1 ligge til grund for applikationen, og i denne lave et login-tjek, før at man kan få lov at arbejde med den. På den måde kan du lukke login-formen, uden at programmet afslutter.
Avatar billede agerled Nybegynder
17. januar 2005 - 16:24 #8
ok. Hvad skal jeg så gøre for at man ikke kan gøre noget på form1 før man er logget ind?
Avatar billede burningice Nybegynder
23. januar 2005 - 15:58 #9
Well... det her er da en mulighed:

Form1: -------------------

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace _581454
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        public static bool IsAuthenticated;

        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public Form1()
        {
            checkLogin();

            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        private void checkLogin()
        {
            if (!Form1.IsAuthenticated)
            {
                Form frm = new Form2();
                frm.ShowDialog();

                if (frm.DialogResult == DialogResult.Abort)
                {
                    Environment.Exit(0);
                }
                else if (frm.DialogResult == DialogResult.OK)
                {
                    return;
                }
                else
                {
                    Environment.Exit(0);
                }
            }
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.Size = new System.Drawing.Size(300,300);
            this.Text = "Form1";
        }
        #endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }
    }
}

Form2: ------------

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace _581454
{
    /// <summary>
    /// Summary description for Form2.
    /// </summary>
    public class Form2 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.TextBox textBox2;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Button button2;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public Form2()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if(components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.textBox2 = new System.Windows.Forms.TextBox();
            this.button1 = new System.Windows.Forms.Button();
            this.button2 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            //
            // textBox1
            //
            this.textBox1.Location = new System.Drawing.Point(16, 16);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(128, 20);
            this.textBox1.TabIndex = 0;
            this.textBox1.Text = "Username";
            this.textBox1.Enter += new System.EventHandler(this.textBox1_Enter);
            //
            // textBox2
            //
            this.textBox2.Location = new System.Drawing.Point(16, 48);
            this.textBox2.Name = "textBox2";
            this.textBox2.Size = new System.Drawing.Size(128, 20);
            this.textBox2.TabIndex = 1;
            this.textBox2.Text = "Password";
            this.textBox2.Enter += new System.EventHandler(this.textBox2_Enter);
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(48, 80);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(72, 24);
            this.button1.TabIndex = 2;
            this.button1.Text = "Login";
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // button2
            //
            this.button2.Location = new System.Drawing.Point(48, 112);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(72, 24);
            this.button2.TabIndex = 3;
            this.button2.Text = "Cancel";
            this.button2.Click += new System.EventHandler(this.button2_Click);
            //
            // Form2
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(168, 149);
            this.Controls.Add(this.button2);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox2);
            this.Controls.Add(this.textBox1);
            this.Name = "Form2";
            this.Text = "Form2";
            this.ResumeLayout(false);

        }
        #endregion

        private void resetTextBox(TextBox tb)
        {
            tb.Text = "";
        }

        private void button1_Click(object sender, System.EventArgs e)
        {
            if (this.textBox1.Text == "1" && this.textBox2.Text == "2")
            {
                Form1.IsAuthenticated = true;
                this.DialogResult = DialogResult.OK;

                this.Close();
            }
            else
            {
                MessageBox.Show("Not authenticated, try again");
            }
        }

        private void button2_Click(object sender, System.EventArgs e)
        {
            this.DialogResult = DialogResult.Abort;
        }

        private void textBox1_Enter(object sender, System.EventArgs e)
        {
            resetTextBox((TextBox)sender);
        }

        private void textBox2_Enter(object sender, System.EventArgs e)
        {
            resetTextBox((TextBox)sender);
        }
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester