2

У меня есть форма с значением даты в элементе управления TextBox. Форма использует привязку данных с BindingSource к DataSet и базе данных SQL 2005 CE. Где я могу управлять форматированием даты? Нигде в свойствах по пути я не видел, например, возможность вырезать временную часть.Форма WinForms с привязкой к данным - как форматировать даты?

Я мог бы, конечно, сделать это в базе данных и передать строку вместо DateTime, но это временное решение, а не решение.

ответ

6

Используя конструктор, выберите свое текстовое поле, перейдите на вкладку свойств, выберите (DataBindings) - Дополнительно.

Здесь вы можете выбрать тип данных Дата Время и, возможно, вырезать только дату или время и т.д.

+0

Ого, как я не вижу, что ...? – cdonner

6

Вы можете обработать событие Binding.Format Событие для форматирования даты. И его аналог Binding.Parse для анализа ввода из TextBox.

E.g.

TextBox.DataBindings["Text"].Format += new ConvertEventHandler(FormatDateEventHandler); 
... 
private void FormatDateEventHandler (object sender, ConvertEventArgs e) 
{ 
    if (! Convert.IsDBNull (e.Value)) 
    { 
     e.Value = ((DateTime)e.Value).ToString ("d", CultureInfo.CurrentCulture); 
    } 
}