C# - WinForms-numericUpDown-control (entfernen der spin-box)
Nach einer Tonne googeln, ich konnte nicht kommen mit nichts..
Gibt es eine Möglichkeit zu einem numericUpDown-Steuerelement, das nicht über die spin box?
Brauche ich ein Textfeld, dass nur Ganzzahlen, und ein numericUpDown hat das perfekte Verhalten, das ich Suche. Allerdings brauche ich zum ausblenden der numerischen spinbox für Raum-Einschränkungen.
Wenn ich versuche etwas zu machen, das numericUpDown.Controls[0].Hide() oder numericUpDown.Controls.RemoveAt(0), die spinnbox verschwindet, lässt aber eine unusuable entfällt, wenn der spinbox verwendet werden. Somit können die zahlen zu diesem Punkt, d.h. der Speicherplatz wird verschwendet..
Gibt es irgendeine andere Lösung?
Dank..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Erben von NumericUpDown. Der trick ist, sich zu verstecken Steuerelement, wenn das Steuerelement erstellt wird.
Wenn der Ort waren, dass die Schaltflächen werden sollte, sieht irgendwie merkwürdig aus, override OnPaint zu.
Auch, werden Sie wahrscheinlich nicht brauchen, NumericUpDown. Würde es genug sein um zu überprüfen, ob nur Ziffern können eingegeben? C# Textbox Nur Zahlen
Entschied ich mich für deaktivieren den Pfeiltasten, als weniger hässlich, als zu versuchen, sich zu verstecken oder entfernen Sie Sie.
Unmittelbar nach dieser boilerplate-code:
ist, fügen Sie diese:
Auch: set
InterceptArrowKeys
zufalse
in die Eigenschaften des Steuerelements, um zu verhindern, dass die Pfeiltasten (auf der Tastatur) von Inkrementieren und DekrementierenmyNumericUpDown.Value
.Schlechte Möglichkeiten:
Halb so schlimm:
Vergessen, die oben genannten. Nur setzen
Increment
zu0
in den Eigenschaften des Steuerelements. Die Pfeil-Tasten noch funktionieren, und die Pfeiltasten (auf der Tastatur) noch abgefangen, aber jetzt tun Sie nichts. Leider Nein-die action-buttons sind wohl weniger intuitiv als deaktiviert Pfeil-Tasten. (Ich bin überrascht, dass es sogar akzeptiertIncrement
=0
. Eine smart-version dieses Steuerelements würde ordentlich verstecken Sie die Pfeiltasten, wenn Sie die Schrittweite ist 0.)Andere Lösung(en):
Einen Anzahl-Feld umgesetzt werden können, wie ein
TextBox
mit extra-code, beschränkt die Eingabe auf nur zahlen, und zurück, oder kündigt einen numerischen Wert (decimal
oder Ihrer Wahl). (Die Suche findet viele verschiedene, komplexe Beispiele.) Eingefügte Daten kommt anders von Tastatureingaben, so dass zusätzlicher code erforderlich ist, zu handhaben Pasten. (Vorteil: Sie können die Anzahl-Feld schlauer als die built-inNumericUpDown
: NumericUpDown dummerweise akzeptiert und zeigt.
bis der Benutzer die EINGABETASTE drückt oder das Spielfeld verlässt, auch wenn SieDecimalPlaces = 0
; und es akzeptiert und zeigt mehrere Nachkommastellen, das ist Unsinn.)Einer integer-Feld ist einfacher als eine verallgemeinerte Zahl-Feld akzeptiert reellen zahlen (Optional in floating-point notation) und gibt eine real-Zahl-Typ (
float
,double
oderdecimal
).