![]() |
nur Ziffern in textBox
Hallo!
Ich bin einfach zu dumm dazu oder ich hab ein black-out. Ich bringe es nicht zusammen, dass man in eine textBox nur Ziffern eintragen kann. :roll: Danke. Grüße Faux |
Re: nur Ziffern in textBox
Delphi-Quellcode:
procedure MakeNumericControl(theControl: TWinControl);
begin Assert(Assigned(theControl)); SetWindowLong(theControl.Handle, GWL_STYLE, GetWindowLong(theControl.Handle, GWL_STYLE) or ES_NUMBER); end; MakeNemericControl(Edit1); |
Re: nur Ziffern in textBox
Hallo!
Danke für den Hinweis, aber leider habe ich .NET als Sprache angegeben. Grüße Faux |
Re: nur Ziffern in textBox
Code:
void TextBox1KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{ e.Handled = !Char.IsDigit(e.KeyChar); } |
Re: nur Ziffern in textBox
Hallo!
Ja, danke, so weit war ich auch schon. :P So funktioniert ja Backspace nichtmehr. Grüße Faux NACHTRAG: Kann man das nicht nach dem Listen-Prinzip machen? Denn bei einem Feld will ich nur 0-9, J-N, P und R-Z zulassen. |
Re: nur Ziffern in textBox
Hallo!
Leider gibt es ja sowas wie Sets in C# nicht (kann man aber wohl "nachmachen", siehe Robert_G's Hinweis ![]()
Code:
In die RegExp kannsst Du natürlich auch Deine Buchstabenbereiche rein packen.
if (!(new Regex('[0-9\b]', RegexOptions.IgnoreCase).IsMatch(yourChar)) ...
Grüße Christian |
Re: nur Ziffern in textBox
Hier ein minimalistischer, generischer Ansatz: (weiß ja nicht, ob du integer, double, ... nehmen willst ;) )
Code:
Ein vorkompilierte RegEx in Christians Stil könnte aber auch ganz nützlich sein.
public class Int32TextBox : TypedTextBox<int> { }
public class DecimalTextBox : TypedTextBox<double> { } public class DoubleTextBox : TypedTextBox<decimal> { } public class TypedTextBox<T> : TextBox where T : IEquatable<T> { T value; [Category("Appearance")] public T Value { get { return this.value; } set { if (!this.value.Equals(value)) { this.value = value; base.Text = this.value.ToString(); } } } [Browsable(false)] public override string Text { get { return base.Text; } set { base.Text = value; } } protected override void OnTextChanged(EventArgs e) { try { Value = (T)Convert.ChangeType(base.Text, typeof(T)); } catch (Exception ex) { Undo(); throw new InvalidCastException("bla bla", ex); } } public TypedTextBox() { base.Text = this.value.ToString(); } } |
Re: nur Ziffern in textBox
Zitat:
Danke jedenfalls für die Hinweise und den Code, "Elvis". ;) Werd's mal testen. Grüße Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz