Numeric UpDown 32Bit unsigned?
-
Hallo miteinander
Ich habe ein kleines Problem bei einer GUI von mir:
Da ich eine DA-Ausgabe von einem MCU etwas anpassen möchte (Skalierung), habe ich die entsprechenden Faktoren hinzu gefügt.
Nur habe ich jetzt leider feststellen müssen, dass man anscheinen bei den Numeric Up Down sehrwohl 0xFFFFFFFF als Maximum angeben kann. Aber wenn der Benutzer jetzt einen grösseren Wert als ox7FFFFFFF eingiebt, springt der Wert auf 0 zurück.
Meine Vermutung ist, dass hier irgendwie ein Problem mit signed und unsigned besteht.Hat jemand ein paar Vorschläge?
MFG
P51D
-
numericUpDown1.Maximum = Decimal.MaxValue;
numericUpDown1.Value = Decimal.MaxValue;79228162514264337593543950335
== 0x6DF37F675EF6EADFKann Dein Problem nicht nachvollziehen.
-
Manipulationen mit den Pfeilen funktionieren auch, aber wenn ich einen Wert in das Feld eintippe, springt er auf 0 zurück:
numericUpDown1.Maximum = 4294967295;
numericUpDown1.Minimum = 0;Ajcha, die Numeric Up Downs sind auf Hex eingestellt.
-
http://msdn.microsoft.com/de-de/library/system.windows.forms.numericupdown.hexadecimal.aspx
Wenn die Hexadecimal-Eigenschaft auf true festgelegt ist, sollte die Maximum-Eigenschaft auf Int32.MaxValue und die Minimum-Eigenschaft auf Int32.MinValue festgelegt werden.
-
Soll heissen, dass ich nicht einen Numeric Up Down für volle 32Bit haben kann?
Also maximaler Wert 0xFFFFFFFF ist?MFG
P51D
-
Steht doch unzweideutig da: Wenn Du hexadezimale Anzeige möchtest, gehts nicht über Int32.MaxValue (2147483647 = 7FFFFFFF)
Dezimal geht es bis Decimal.MaxValue. Das ist "etwas" mehr.
-
Servus,
weiche auf die MaskedTextBox aus und konvertiere später wieder in deinen UInt32.
Beispiel für Mask:
">AA:AA:AA:AA"Manuell filtern in KeyDown Event:
private void OnTextBoxKeyDown(object sender, KeyEventArgs e) { e.SuppressKeyPress = !( ( ( e.KeyCode >= Keys.A ) && ( e.KeyCode <= Keys.F ) ) || ( ( e.KeyCode >= Keys.NumPad0 ) && ( e.KeyCode <= Keys.NumPad9 ) ) || ( ( e.KeyCode >= Keys.D0 ) && ( e.KeyCode <= Keys.D9 ) ) || ( e.KeyCode == Keys.Left ) || ( e.KeyCode == Keys.Right ) || ( ( e.Modifiers & Keys.Control ) != Keys.None ) ); }
Du hast zwar dann kein SpinControl, aber ich denke mal damit lässt es sich leben. Ansonsten leite ab und bastel dir selbst was. Ist aber erheblich mehr Aufwand....
gruß
HellsgoreEDIT:
@µ
"unzweideutig", hab ich auch noch nicht gehört. Gefällt mir