Entwickler-Ecke
WPF / Silverlight - Textbox wird nicht angezeigt - passworteingabe
dansmo - Do 10.06.10 16:41
Titel: Textbox wird nicht angezeigt - passworteingabe
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??
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(2010, 6, 10, 0, 0, 0, 0); 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!");
passwordControl();
if (!textBox1.Text.Equals("12345")) Abort(); } |
Kha - 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 - Fr 11.06.10 08:47
Okay, das verstehe ich.
Kannst du mir bitte zeigen, wie ich das mit einem Button machen kann?
dansmo - 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?
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 - 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? :)
http://www.microsoft.com/germany/msdn/webcasts/library.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:
http://www.microsoft.com/germany/msdn/webcasts/library.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 - 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 - Fr 11.06.10 19:43
dansmo hat folgendes geschrieben : |
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 :) .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!