2014-07-10 3 views
0

Je suis en train d'essayer de construire une winform pour le moment. J'ai besoin d'une case pour entrer un décalage d'octet hexadécimal (c'est-à-dire capable de contenir un nombre de 64 bits).Limite de caractères pour taper/coller un hexagone dans numericupdown

Je pensais qu'un démarrage numérique fonctionnerait mais il semble avoir une limite de 32 bits. Y a-t-il un moyen de contourner cela ou une approche plus appropriée que quelqu'un pourrait suggérer?

Update:

La limite de 32 bits (8 caractères) se réfère à la dactylographie/coller une valeur dans la zone.

+0

Pourquoi cela a-t-il été rejeté? Il n'y a même pas de commentaire (à part celui-ci.) Comme la réponse montre que ce n'est pas un problème trivial. –

Répondre

0

NumericUpDown.Value est une décimale

http://msdn.microsoft.com/en-us/library/364x0z75.aspx

10^28 est d'environ 2^100 (donc 100 bits pour mantisse) donc 64 bits sont ok

Si vous essayez ce morceau de code sur un NumericUpDown vient d'être créé fonctionne très bien ...

 numericUpDown1.Maximum = UInt64.MaxValue; 
     numericUpDown1.Value = numericUpDown1.Maximum; 

EDIT: si vous définissez l'indicateur pour hex vous ne pouvez pas utiliser UInt64 mais seulement Int64. Je l'ai raté ... En tout cas, Int64 est ok.

+0

Merci. Je vais essayer quand je reviens sur ma machine plus tard. – user3058117

+0

Cela fonctionne, mais le fait de taper/coller dans la boîte ne semble autoriser qu'une valeur de 8 caractères (32 bits). Est-ce que je fais quelque chose de mal? – user3058117

+0

Non, rien à redire. – bubi