odświeżanie DateTimePicker

0

Mam problem z kontrolką DateTimePicker. Chcę żeby początkowo wartość kontrolki była pusta a potem po wybraniu daty wyświetliła się i to mi sie udaje. Problem w tym, że po wyświetleniu daty kalendarz się nie chowa tak jak to się dzieje zwykle po wybraniu daty. Refresh() nie działa. Proszę o sugestie.

this.DateTimePicker1.CustomFormat = "  ";
this.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;

private void DateTimePicker1_ValueChanged(object sender, EventArgs e)
{
DateTime d = DateTimePicker1.Value;
this.DateTimePicker1.Format =  System.Windows.Forms.DateTimePickerFormat.Short;
DateTimePicker1.Value = d;
}
0

Mógłbyś podać dokładniej o co chodzi? Przekleiłem twój kod do przykładowej aplikacji Windows Forms i działa wg mnie tak jakbyś chciał. Po uruchomieniu aplikacji pole Pickera jest puste. Po wybraniu jakiejś daty kalendarz chowa się, a w polu jest wybrana data w krótkim formacie. Jak zmieniłem Format na Long, to też działa prawidłowo. Testowalem na VS2010 Express, ustawienie projektu Target Framework to ".NET Framework 4 Client Profile", działam na Windows 7 Home Premium.

0
  1. Po co to?
DateTime d = DateTimePicker1.Value;

DateTimePicker1.Value = d;
 
  1. Faktycznie, jak wyłączy się w program.cs
 Application.EnableVisualStyles(); 

kalendarz nie chowa się.

Podejrzewam, że wiele z tym nie zrobisz. Ciekawostka:

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            dateTimePicker1.Format = DateTimePickerFormat.Long;
            this.Controls.Remove(dateTimePicker1);
        }

datetimepicker1 zniknie, a kalendarz dalej będzie wisiał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1