7
votes

Afficher `00` au lieu de` 0` dans un contrôle numérique

Je loue les utilisateurs à sélectionner une date / heure pour une tâche planifiée à exécuter, en utilisant deux numericupdown contrôles.

J'aimerais que des valeurs à une chiffre soient rembourrées avec un 0 à 0, de manière à afficher 09:00 au lieu de 9: 0 . .


0 commentaires

5 Réponses :


2
votes

Ce n'est pas possible avec un contrôle numericupDown.


1 commentaires

Merci! Je vais devoir utiliser un DomainUpdown .



2
votes

J'ai une idée intelligente ~ Pourquoi ne mettez-vous pas une zone de texte couvrant la partie de texte de la commande numericupDown (seul le rouleau de numericupDown sera affiché)?

Définissez votre zone de texte avec "00" comme valeur initiale, puis désactivez-la, de sorte que l'utilisateur Impossible de contrôler votre zone de texte.

puis tapez ces codes: xxx


1 commentaires

Yup, mais c'est un peu piraté, pas très propre. Je suppose que vous utiliseriez probablement une étiquette, pas une zone de texte.



6
votes

La solution définitive consiste à utiliser un denteTimePicker avec showupdown défini sur true et format défini sur Temps ou personnalisé . Dans ce dernier cas, vous utiliseriez HH: mm ou HH: mm comme format personnalisé.


0 commentaires

5
votes
class CustomNumericUpDown:System.Windows.Forms.NumericUpDown
{
    protected override void OnTextBoxTextChanged(object source, EventArgs e)
    {
        TextBox tb = source as TextBox;
        int val = 0;
        if (int.TryParse(tb.Text,out val))
        {
            if (val < 10)
            {
                tb.Text = "0" + val.ToString();
            }
        }
        else
        {
            base.OnTextBoxTextChanged(source, e);
        }
    }
}
I had to do this this morning and came up with a Customised Numeric Up Down for my Windows Forms application. You should be able to change this easily enough to VB.NET.

0 commentaires

-1
votes
class MyNumericUpDown : System.Windows.Forms.NumericUpDown
{
   public override string Text
   {
      get
      {
         return base.Text;
      }
      set
      {
         if (value.Length < 2)
            value = "0" + value;

         base.Text = value;
      }
   }
}

0 commentaires