DtpTimeM.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. 
  2. using System;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. namespace Dongke.WinForm.Controls
  6. {
  7. /// <summary>
  8. /// 时间控件,该控件用来让用户选择日期和时间并以【HH:mm】格式显示此时间。
  9. /// </summary>
  10. [ToolboxBitmap(typeof(DateTimePicker))]
  11. public class DtpTimeM : DtpTime
  12. {
  13. #region 构造函数
  14. /// <summary>
  15. /// 时间控件
  16. /// </summary>
  17. public DtpTimeM()
  18. {
  19. base.CustomFormat = Constant.DATETIME_FORMAT_HHMM;
  20. base.ShowUpDown = true;
  21. }
  22. #endregion
  23. #region 属性
  24. /// <summary>
  25. /// 获取或设置分配给控件的时间值。
  26. /// </summary>
  27. public override TimeSpan? Value
  28. {
  29. get
  30. {
  31. TimeSpan? dt = base.Value;
  32. if (dt.HasValue)
  33. {
  34. return new TimeSpan(dt.Value.Hours, dt.Value.Minutes, 0);
  35. }
  36. return null;
  37. }
  38. set
  39. {
  40. if (value.HasValue)
  41. {
  42. base.Value = new TimeSpan(value.Value.Hours, value.Value.Minutes, 0);
  43. }
  44. else
  45. {
  46. base.Value = null;
  47. }
  48. }
  49. }
  50. /// <summary>
  51. /// 获取或设置与此控件关联的日期文本(无格式)。
  52. /// </summary>
  53. public override string DateText
  54. {
  55. get
  56. {
  57. TimeSpan? dt = this.Value;
  58. if (dt.HasValue)
  59. {
  60. return dt.Value.ToString("HHmm");
  61. }
  62. return string.Empty;
  63. }
  64. set
  65. {
  66. if (value == null || value.Length == 0)
  67. {
  68. this.Value = null;
  69. return;
  70. }
  71. TimeSpan dt;
  72. if (TimeSpan.TryParseExact(value, "HHmm", null, System.Globalization.TimeSpanStyles.None, out dt))
  73. {
  74. this.Value = dt;
  75. }
  76. }
  77. }
  78. #endregion
  79. }
  80. }