■ DateEdit 클래스의 InvalidValue 이벤트를 사용하는 방법을 보여준다.
▶ MainForm.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
using System; using System.ComponentModel; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; namespace TestProject { /// <summary> /// 메인 폼 /// </summary> public partial class MainForm : XtraForm { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - MainForm() /// <summary> /// 생성자 /// </summary> public MainForm() { InitializeComponent(); this.fromDateEdit.Validating += fromDateEdit_Validating; this.fromDateEdit.InvalidValue += fromDateEdit_InvalidValue; this.fromDateEdit.Validated += fromDateEdit_Validated; this.toDateEdit.Validating += toDateEdit_Validating; this.toDateEdit.InvalidValue += toDateEdit_InvalidValue; this.toDateEdit.Validated += toDateEdit_Validated; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Private #region FROM 날짜 에디터 값 검증시 처리하기 - fromDateEdit_Validating(sender, e) /// <summary> /// FROM 날짜 에디터 값 검증시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void fromDateEdit_Validating(object sender, CancelEventArgs e) { if(this.fromDateEdit.EditValue == null) { e.Cancel = false; } else { if(this.toDateEdit.EditValue == null) { e.Cancel = false; } else { if(this.fromDateEdit.DateTime > this.toDateEdit.DateTime) { this.fromDateEdit.ErrorText = "FROM 날짜가 TO 날짜보다 큽니다."; e.Cancel = true; } } } } #endregion #region FROM 날짜 에디터 무효한 값 처리하기 - fromDateEdit_InvalidValue(sender, e) /// <summary> /// FROM 날짜 에디터 무효한 값 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void fromDateEdit_InvalidValue(object sender, InvalidValueExceptionEventArgs e) { e.ExceptionMode = ExceptionMode.NoAction; this.messageTextEdit.Text = this.fromDateEdit.ErrorText; } #endregion #region FROM 날짜 에디터 검증 완료시 처리하기 - fromDateEdit_Validated(object sender, EventArgs e) /// <summary> /// FROM 날짜 에디터 검증 완료시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void fromDateEdit_Validated(object sender, EventArgs e) { this.messageTextEdit.Text = string.Empty; } #endregion #region TO 날짜 에디터 값 검증시 처리하기 - toDateEdit_Validating(sender, e) /// <summary> /// TO 날짜 에디터 값 검증시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void toDateEdit_Validating(object sender, CancelEventArgs e) { if(this.toDateEdit.EditValue == null) { e.Cancel = false; } else { if(this.fromDateEdit.EditValue == null) { e.Cancel = false; } else { if(this.toDateEdit.DateTime < this.fromDateEdit.DateTime) { this.toDateEdit.ErrorText = "TO 날짜가 FROM 날짜보다 작습니다."; e.Cancel = true; } } } } #endregion #region TO 날짜 에디터 무효한 값 처리하기 - toDateEdit_InvalidValue(sender, e) /// <summary> /// TO 날짜 에디터 무효한 값 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void toDateEdit_InvalidValue(object sender, InvalidValueExceptionEventArgs e) { e.ExceptionMode = ExceptionMode.NoAction; this.messageTextEdit.Text = this.toDateEdit.ErrorText; } #endregion #region TO 날짜 에디터 검증 완료시 처리하기 - toDateEdit_Validated(object sender, EventArgs e) /// <summary> /// TO 날짜 에디터 검증 완료시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void toDateEdit_Validated(object sender, System.EventArgs e) { this.messageTextEdit.Text = string.Empty; } #endregion } } |