Je loue les utilisateurs à sélectionner une date / heure pour une tâche planifiée à exécuter, en utilisant deux J'aimerais que des valeurs à une chiffre soient rembourrées avec un 0 à 0, de manière à afficher numericupdown code> contrôles. P>
09:00 code> au lieu de
9: 0 code>. P>.
5 Réponses :
Ce n'est pas possible avec un contrôle numericupDown. p>
Merci! Je vais devoir utiliser un DomainUpdown code>.
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. p>
puis tapez ces codes: p>
Yup, mais c'est un peu piraté, pas très propre. Je suppose que vous utiliseriez probablement une étiquette, pas une zone de texte.
La solution définitive consiste à utiliser un denteTimePicker code> avec
showupdown code> défini sur
true code> et
format code> défini sur
Temps code> ou
personnalisé code>. Dans ce dernier cas, vous utiliseriez
HH: mm code> ou
HH: mm code> comme format personnalisé. P>
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.
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; } } }