![]() |
1
1
实际上,有比创建自定义DataGridView列更好的方法。我目前为应用程序所做的是,当输入DataGridView的Timestamp列时,我将一个DateTimePicker控件直接放置在单元格上。当用户点击出单元格(从而确认他的选择)时,DateTimePicker Visible设置为false,并且将DateTimePicker的值放入单元格。默认情况下,DateTimePicker控件可见性设置为false,直到我需要它为止。我还将其用于常规单元格上的组合框控件,用户无法在其中输入自定义值,必须使用设置屏幕上的项目列表。这种技术很适合伪装。我没有现成的代码,但是代码更少,维护IMHO也更容易。 上面和下面的技术是从 Faking alternative controls within a DataGridView control in Win Forms 2.0 编辑:这是代码-
}
|
![]() |
2
3
找同样的东西,我终于找到了 MSDN article that shows how to make a custom CalendarColumn 所以我使用代码示例并修改它来创建时间列。它工作得很好-非常干净,基于Microsoft代码示例。不是黑客,可以高效可靠地绑定数据。 要实现,只需将这些类添加到项目中,然后在DataGridView的ColumnType字段中选择TimeColumn。
|
![]() |
3
0
阿法克,这是一种直接的方法。我认为唯一的方法是创建一个自定义的DataGridView列。检查此链接 creating a custom datagridview column |
![]() |
4
0
很抱歉回复了一个旧的线程,但这是我唯一能找到的地方,有人像我一样修改了MS代码。作为对rthomas的回应,我已经这样做了,但是当绑定到数据表时,我发现使用timecolumn有问题。我将其用于员工时间表条目,因此日期元素不可见,只显示时间。当我输入数据时,它可以正常工作,但当我尝试编辑数据时,有问题。 单元值在OnValueChanged事件中是正确的(使用debug可以看到me.value的值),但在DataGridView.CellEndediting或CellValidated事件中,该值显示当前日期和编辑的时间值。奇怪的是,如果用户移动到另一个单元格,然后返回到时间单元格,然后再次移动到另一个单元格,那么值是正确的,但是在初始编辑之后,日期是错误的。 我看过所有不同的事件,但它似乎介于在DataGridView中编辑的值和提交到绑定到DataGridView的DataTable之间。 |
![]() |
Community wiki · 局部变量可能尚未初始化 2 年前 |
![]() |
F.M. · Android计时器问题 8 年前 |
|
NoobNinja · 将TimePicker数据保存在sqlite数据库中 12 年前 |