2010-08-17 16 views

cevap

6

kesin çözüm Time veya Custom bir DateTimePicker grubu True set ShowUpDown ve Format kullanmaktır. İkinci durumda, özel bir biçim olarak hh:mm veya HH:mm kullanırsınız.

2

Bu, NumericUpDown Denetimi ile mümkün değildir.

+0

Teşekkürler! O zaman bir 'DomainUpDown' kullanmam gerekecek. –

2

Akıllı bir fikrim var ~ Niçin numericupdown denetiminin textbox bölümünü kapsayan bir metin kutusu koymuyorsunuz (sadece sayısal tuş kaydırması gösterilecektir)?

Metin kutunuzu, başlangıç ​​değeri olarak "00" olarak ayarlayın, ardından devre dışı bırakın, böylece kullanıcı metin kutunuzu kontrol edemez.

Daha sonra bu kodları yazın:

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 
+1

Yup, ama bu biraz hackish, çok temiz değil. Sanırım büyük ihtimalle bir etiket kullanacaksınız, bir metin kutusu değil. –

3
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); 
     } 
    } 
} 

Bu sabah bunu yapmak zorunda kaldım ve Windows Forms uygulamam için Özelleştirilmiş Sayısal Yukarı Aşağı'yı buldum. Bunu kolayca VB.NET'e değiştirebilmelisiniz.

-1
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; 
     } 
    } 
}