Je laisse les utilisateurs sélectionner une date/heure pour l'exécution d'une tâche planifiée à l'aide de deux contrôles NumericUpDown
. Je souhaite que les valeurs à un chiffre soient remplies avec un 0, afin d'afficher 09:00
au lieu de 9:0
.Afficher `00` au lieu de` 0` dans un contrôle NumericUpDown
Répondre
La solution définitive est d'utiliser un DateTimePicker
avec ShowUpDown
ensemble à True
et Format
ensemble à Time
ou Custom
. Dans ce dernier cas, vous utiliserez hh:mm
ou HH:mm
en tant que format personnalisé.
Cela n'est pas possible avec un contrôle NumericUpDown.
J'ai une idée géniale ~ Pourquoi ne pas mettre une zone de texte couvrant la partie textbox du contrôle numericupdown (seul le défilement de numericupdown sera affiché)?
Définissez votre zone de texte avec "00" comme valeur initiale, puis désactivez-la afin que l'utilisateur ne puisse pas contrôler votre zone de texte.
Puis tapez ces codes:
Private Sub numericupdown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ndFrom.ValueChanged
If numericupdown1.Value < 10 Then
textbox1.Text = "0" & numericupdown1.Value
Else
textbox1.Text = numericupdown1.Value
End If
End Sub
Ouais, mais c'est un peu hackish, pas très propre. Je suppose que vous utiliseriez probablement un label, pas une zone de texte. –
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);
}
}
}
Je devais faire ceci ce matin et est venu avec un numérique vers le haut personnalisé vers le bas pour mon application Windows Forms. Vous devriez être capable de changer cela assez facilement à 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;
}
}
}
Merci! Je vais devoir utiliser un 'DomainUpDown' alors. –