Я хочу использовать DataGridView для отображения даты и DateTimePicker для реализации фильтра. Я хочу, чтобы оба они отображали дату в формате «G» Standard Date and Time Format. В идеале я бы просто сделал.Net get DateTimeFormat «G»
dateTimePicker1.CustomFormat = "G";
но это не работает. (Он буквально отображает символ «G» в DateTimePicker.) Я нашел следующее обходное решение, но кажется хрупким и громоздким для меня.
DateTime now = DateTime.Now;
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns('G')[0];
dateTimePicker1.Value = now;
dataGridView.Rows.Add(now);
Любые предложения по улучшению?
Редактировать: Добавлено, что я установил dateTimePicker1.Format.
'formatInfo.ShortDatePattern +" "+ formatInfo.LongTimePattern' не является большим количеством одобрения по сравнению с' formatInfo.GetAllDateTimePatterns ('G') [0] 'у него уже есть и претензии работают. –
@ JeppeStigNielsen: Ну, это альтернатива. Это может быть и более эффективным, но это вряд ли будет актуальным. –
Я закончил тем, что придерживался своего оригинального решения. Я ценю ссылку на MSDN и другое альтернативное решение. Я не нашел ничего в своих собственных поисках о том, что «G» официально было определено иначе, чем это было по умолчанию для [DateTime.ToString()] (http://msdn.microsoft.com/en-us/library/ zdtaw1bw.aspx). –