123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using DevExpress.XtraEditors;
- using DevExpress.XtraEditors.DXErrorProvider;
- using ExtensionsDev;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Documents;
- using System.Windows.Forms;
- using DW5S.Entity;
- using DW5S.Repostory;
- namespace DW5S.App.EditForms
- {
- public partial class PosTimeEditor : DevExpress.XtraEditors.XtraForm
- {
- static Dictionary<int, (DateTime, DateTime)> cache = new Dictionary<int, (DateTime, DateTime)>();
- public DateTime start;
- public DateTime end;
- TaskInfo tsk;
- public PosTimeEditor()
- {
- InitializeComponent();
- this.layoutControl1.UseDefault();
- this.txtStartTime.UseDefault().UseDoubleClickToSelectAll();
- this.txtEndTime.UseDefault().UseDoubleClickToSelectAll();
- this.StartPosition = FormStartPosition.CenterParent;
- }
- public PosTimeEditor(TaskInfo tsk)
- : this()
- {
- this.tsk = tsk;
- }
- private void SatEditor_Load(object sender, EventArgs e)
- {
- this.Size = new Size(200, 240);
- if (cache.ContainsKey(tsk.Id))
- {
- txtStartTime.DateTime = cache[tsk.Id].Item1;
- txtEndTime.DateTime = cache[tsk.Id].Item2;
- }
- else
- {
- txtStartTime.DateTime = DateTime.Now;
- txtEndTime.DateTime = DateTime.Today.AddDays(7);
- }
- }
- private void btnCancel_Click(object sender, EventArgs e)
- {
- this.DialogResult = DialogResult.Cancel;
- }
- private void btnOk_Click(object sender, EventArgs e)
- {
- dxErrorProvider1.ClearErrors();
- if (this.txtStartTime.DateTime == DateTime.MinValue)
- {
- dxErrorProvider1.SetError(txtStartTime, "开始时间不能为空");
- return;
- }
- if (this.txtEndTime.DateTime == DateTime.MinValue)
- {
- dxErrorProvider1.SetError(txtEndTime, "结束时间不能为空");
- return;
- }
- start = DateTime.Parse(txtStartTime.DateTime.ToString("yyyy-MM-dd HH:mm:ss"));//通过转换移除掉毫秒部分
- end = DateTime.Parse(txtEndTime.DateTime.ToString("yyyy-MM-dd HH:mm:ss"));//通过转换移除掉毫秒部分
- if (start > end)
- {
- dxErrorProvider1.SetError(txtEndTime, "结束时间不能小于开始时间");
- return;
- }
- if (cache.Count >= 50)
- cache.Remove(cache.First().Key);
- if (cache.ContainsKey(tsk.Id))
- cache[tsk.Id] = (start, end);
- else
- cache.Add(tsk.Id, (start, end));
- this.DialogResult = DialogResult.OK;
- }
- }
- }
|