我使用绑定源,这是通过设置每个文本框的数据绑定属性来显示来自数据库的文本框的数据,Me.PaymentTableAdapter.Fill(Me.RestaurantDataSet.Payment)
我可以知道如何格式化日期和时间,例如04 Jan 2020
并23:00
显示在文本框中吗?默认显示样式是2020/01/04
和23:00:00
我已经通过谷歌搜索,但没有一个解决方案有效
我使用绑定源,这是通过设置每个文本框的数据绑定属性来显示来自数据库的文本框的数据,Me.PaymentTableAdapter.Fill(Me.RestaurantDataSet.Payment)
我可以知道如何格式化日期和时间,例如04 Jan 2020
并23:00
显示在文本框中吗?默认显示样式是2020/01/04
和23:00:00
我已经通过谷歌搜索,但没有一个解决方案有效
我刚刚测试了以下代码,它按预期工作:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim table As New DataTable
With table.Columns
.Add("Date", GetType(Date))
.Add("Time", GetType(TimeSpan))
End With
With table.Rows
.Add(#1/1/2000#, TimeSpan.FromHours(5.0))
.Add(#2/4/2008#, TimeSpan.FromHours(10.25))
.Add(#3/8/2016#, TimeSpan.FromHours(15.5))
.Add(#4/12/2024#, TimeSpan.FromHours(20.75))
End With
BindingSource1.DataSource = table
UnformattedDateTextBox.DataBindings.Add("Text", BindingSource1, "Date")
UnformattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "Time")
FormattedDateTextBox.DataBindings.Add("Text", BindingSource1, "Date", True, DataSourceUpdateMode.OnValidation, Nothing, "dd MMM yyyy")
FormattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "Time", True, DataSourceUpdateMode.OnValidation, Nothing, "hh\:mm")
End Sub
我使用了四个TextBoxes
- 两个没有格式化,两个有。如您所见,我在绑定 unformatted 时仅提供了基本信息,TextBoxes
但使用了Add
带有更多参数的重载,以指定启用格式化以及绑定 formatted 时的格式应该是什么TextBoxes
。为了提供格式字符串,您还必须提供数据源更新模式和空值。在这种情况下,我为每个指定了默认值。如果您不想指定这些值,那么您可以返回到更基本的重载,然后在创建后设置其他必需的属性:
With FormattedDateTextBox.DataBindings.Add("Text", BindingSource1, "Date")
.FormattingEnabled = True
.FormatString = "dd MMM yyyy"
End With
With FormattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "Time")
.FormattingEnabled = True
.FormatString = "hh\:mm"
End With
请注意,如果您的时间数据也是类型Date
,则原理仍然相同。您只需使用不同的格式字符串:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim table As New DataTable
With table.Columns
.Add("DateTime", GetType(Date))
End With
With table.Rows
.Add(#1/1/2000 5:00:00#)
.Add(#2/4/2008 10:15:00#)
.Add(#3/8/2016 15:30:00#)
.Add(#4/12/2024 20:45:00#)
End With
BindingSource1.DataSource = table
UnformattedDateTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
UnformattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
With FormattedDateTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
.FormattingEnabled = True
.FormatString = "dd MMM yyyy"
End With
With FormattedTimeTextBox.DataBindings.Add("Text", BindingSource1, "DateTime")
.FormattingEnabled = True
.FormatString = "HH:mm"
End With
End Sub