Autor Beitrag
dansmo
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 10.06.10 16:41 
Hallo,

ich möchte in einer Textbox ein Passwort eingeben lassen und dann auf Richtigkeit prüfen.
Leider wird aber die Textbox nicht angezeigt.
Wenn ein bestimmtes Datum überschritten wird, soll der user gewarnt werden. Er soll aber die Möglichkeit haben, per Passworteingabe einen Abbruch des Programms zu verhindern. Die Textbox erscheint aber nicht und es wird einfach abgebrochen. Kann mir jemand einen Tipp geben??
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
       private void passwordControl()
        {
            textBox1.PasswordChar = '*';
            textBox1.Text = "";
            textBox1.MaxLength = 10;
            textBox1.Show();
        }

 DateTime dNow = DateTime.Now;
            DateTime dExpiry = new DateTime(20106100000);
            DateTime About2Expire = dExpiry.Subtract( new TimeSpan(10,0,0,0) );
            

            if( dNow > About2Expire && dNow < dExpiry )
            { 
                MessageBox.Show("This item expires " + dExpiry);
            }
            else
            if( dNow >= dExpiry ) 
            {
                MessageBox.Show("This item has expired! Please reinstall!");

                //DialogResult result = MessageBox.Show("You can run it anyway, if you enter the correct password", "Run or Abort?", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); 
                passwordControl();

                if (!textBox1.Text.Equals("12345"))
                    Abort();
            }
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 10.06.10 21:12 
Das Programm springt, wie es Programme eben so machen, von Zeile 24 direkt zu Zeile 26. Woher soll es denn wissen, wann der Benutzer das Passwort eingegeben hat? Da brauchst du schon entweder einen Button oder schaust im TextChanged der TextBox nach, ob schon 10 Zeichen geschrieben wurden.

_________________
>λ=
dansmo Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 11.06.10 08:47 
Okay, das verstehe ich.
Kannst du mir bitte zeigen, wie ich das mit einem Button machen kann?
dansmo Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 11.06.10 13:54 
Ich habe jetzt versucht einen Button einzubauen, nachdem ich bei Goolge etwas gefunden habe. Irgendwas scheint da aber zu gehlen, bzw. ich weiß nicht wie ich das alles verbinden muss, so auch button_Click.
Nach dem Klick soll ja das password geprüft werden. Kann bitte jemand helfen?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
        private void passwordControl()
        {
            textBox1.PasswordChar = '*';
            textBox1.Text = "";
            textBox1.MaxLength = 10;
            textBox1.Controls.Add(button);
            button.Click += new System.EventHandler(this.button_Click);

            textBox1.Show();
        }

        private void button_Click(object sender, System.EventArgs e)
        {

        }

...

 passwordControl();

                    if (!textBox1.Text.Equals("12345"))
                        Abort();
Kenpachi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 30

Win Vista, Win 7
C#, VB, ASP.NET (VS 2010 Express)
BeitragVerfasst: Fr 11.06.10 16:49 
Zitat:
Kannst du mir bitte zeigen, wie ich das mit einem Button machen kann?

Auweia... Bitte versteh mich nicht falsch. Ich möchte dir in keinster Weise an den Karren fahren, oder dich nieder machen, aber meinst du nicht, dass ein kleines bischen Vorbildung nicht schlecht wäre, wenn man anfangen möchte zu programmieren? :)
www.microsoft.com/ge...y.aspx?id=1032362210
Das ist eine wirklich verständliche und auch ausführliche Webcast-Reihe. Ich kann sie aus persönlichen Erfahrungen nur empfehlen.

Zurück zum Thema.
An dem zu Grunde liegendem Problem hat sich nichts verändert. Das Programm weiss immer noch nicht, ob der Benutzer etwas in der Textbox verändert hat, oder nicht.
Ich persönlich sehe z.B. auch keinen Sinn darin, das OnClick-Event deines Buttons in der Funktion der Textbox zu deklarieren und initialisieren, wozu haben wir denn unsere ach so schöne Designer.cs?
Um langsam mal auf den Punkt zu kommen... du musst das Überprüfen deines Textes in die button_Click-Funktion schreiben, dann sollte auch was passieren wenn, du auf den entsprechenden Button klickst.

//EDIT:
www.microsoft.com/ge...ry.aspx?id=118770374
Diese Webcast-Reihe befasst sich mit C# an sich. Auch diese Reihe ist sehr hiflreich für Anfänger, da auf viele Kleinigkeiten hingewiesen wird, die einem als Anfänger nie auffalen würden, aber für das Programmieren doch recht wichtig sind.


greetz~
dansmo Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 11.06.10 17:33 
Ich verstehe Dich sicher nicht falsch. Manchmal müssen Dinge halt erledigt werden und ich bin eher der Typ Try & Error.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 11.06.10 19:43 
user profile icondansmo hat folgendes geschrieben Zum zitierten Posting springen:
Manchmal müssen Dinge halt erledigt werden und ich bin eher der Typ Try & Error.
Wenn dir aber ein ganz grundlegendes Konzept wie hier die ereignisorientierte Programmierung fehlt, wirst du leider mit "Try" nicht weit kommen :( . Und auch wenn es an dem Problem nichts ändert, würde ich dir doch dazu raten, mit Winforms einzusteigen. WPF hat es faustdick hinter den Ohren, nicht zuletzt im Hinblick auf OOP. Oder - wenn du dafür genügend Motivation aufbringen kannst - fang wirklich mit OOP, Algorithmen etc. in Konsolenprogrammen an, denn da hast du das Problem dann wirklich nicht :) .

_________________
>λ=