Avatar billede trumf Nybegynder
23. september 2005 - 20:56 Der er 9 kommentarer og
1 løsning

returnere værdi fra form

Hejsa E

Jeg har en funktion der åbner en ny form hvori der kan indtastes brugernavn og kodeord. Jeg vil gerne have formen til at validere det indtastede og returnere en værdi.
Brugeren kan vælge at indtaste eller fortryde. Hvis der indtastes noget forkert skal dette meddeles og der kan prøves igen.
Jeg ønsker at få returneret 1 for at de rigtige data er indtastet korrekt eller 0 hvis brugeren fortryder.

Funktionen:
        public int RegisterUser()
        {
            RegisterForm re = new RegisterForm();
            re.Show();
            int returData = re...
            return returData;
        }
RegisterForm er en almindelig winform med to tekstbokse og en knap
Avatar billede arne_v Ekspert
23. september 2005 - 20:59 #1
Du laver en metode i RegisterForm klassen f.eks. AltOk og kalder så med:

int returData = re.AltOk();
Avatar billede arne_v Ekspert
23. september 2005 - 20:59 #2
det ville nok iøvrigt være mere C#'sk at bruge bool fremfor int og 0 / 1
Avatar billede nielle Nybegynder
23. september 2005 - 21:17 #3
Det er vel samme form som i dit forgående spørgsmål:

http://www.eksperten.dk/spm/650487

I den sammenhæng gover det vel mere mening at åbne formen som modal (altså med ShowDialog i stedet for Show).

Desuden skal formen vel returnere hhv. Ok og Cancel hvis det lykkedes eller ej.

Det gør du over i din form ved at sætte DialogResult:

this.DialogResult = DialogResult.OK;

Denne returneres til den kaldende klasse ved kaldet af ShowDialog:


RegisterForm re = new RegisterForm();
if (re.ShowSialog() == DialogResult.OK)
{
    // Login-oplysningerne var korrekte.
}
else
{
    // Login-oplysningerne var ikke korrekte.
}
Avatar billede trumf Nybegynder
23. september 2005 - 21:44 #4
Jeg skal bruge en bestemt kode til det returnerede, så det bliver en int, men det er mindre relevant.
jeg har lavet en funktion
        public int RegisterUser()
        {
            RegisterForm re = new RegisterForm();
            re.Show();
            int returData = re.Registrered();
            return returData;
        }
som kalder
        public int Registrered()
        {
            int returData;
            Functions fcn = new Functions();
            if (fcn.CheckUser()) returData = 4;
            else returData = 0;
            return returData;
        }
og så er der CheckUser der validerer det indtastede...

        private void btnSave_Click(object sender, System.EventArgs e)
        {
            string username = this.txtUser.Text.ToString();
            string pass = this.txtPass.Text.ToString();
            if (username=="x" && pass=="y")
            {
                //Gem data
                this.Close();
            }
        }
Avatar billede trumf Nybegynder
23. september 2005 - 21:47 #5
Hov, havde ikke lige set dit indlæg nielle...
prøver lige igen så :)
Avatar billede trumf Nybegynder
23. september 2005 - 21:54 #6
prøver noget i den stil
        private void btnSave_Click(object sender, System.EventArgs e)
        {
            string username = this.txtUser.Text.ToString();
            string pass = this.txtPass.Text.ToString();
            if (username=="x" && pass=="y")
            {
                //Gem data
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                this.label1.ForeColor = Color.Red;
                this.label1.Text = "Forkert brugernavn eller kodeord";
            }
        }
Avatar billede trumf Nybegynder
23. september 2005 - 22:32 #7
Hey, hvor er i gode :)
Smid et svar, det kører for vildt.
Avatar billede trumf Nybegynder
23. september 2005 - 22:33 #8
Forresten er det i onClose eller noget i den stil, at jeg fanger hvis brugeren lukker vinduet uden at svare ?
Avatar billede nielle Nybegynder
24. september 2005 - 09:26 #9
Hvis brugeren lukker vinduet - f.eks. ved at trykke på det likke kryds i hjørnet - så returneres der automatisk DialogResult.Cancel. Du skal altså ikke gøre noget ekstra i den anledning.

... og et svar :^)
Avatar billede trumf Nybegynder
25. september 2005 - 10:38 #10
Tak for hjælpen :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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