protected void OnErrorMessageChanged(ErrorTabPageDrawEventArgs e) { EventHandler <ErrorTabPageDrawEventArgs> handler = ErrorTabPageDraw; if (handler != null) { handler(this, e); } }
/// <summary> /// 에러 그리드뷰 출력 이벤트 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void HandleErrorInfoChanged(object sender, ErrorMessageEventArgs e) { this.dataGridViewBMSErrorHistory.SafeInvoke(d => d.Rows.Add(e.DataRowErrorInfo["Error Time"], e.DataRowErrorInfo["COM"], e.DataRowErrorInfo["BMS ID"], e.DataRowErrorInfo["Error Code"], e.DataRowErrorInfo["Error Value"])); this.dataGridViewBMSErrorHistory.SafeInvoke(d => d.CurrentCell = d.Rows[d.Rows.Count - 1].Cells[0]); // 메인폼으로 에러 상태 전달 ( 에러발생시 탭페이지 점멸 됨 ) int error = e.DataRowErrorInfo["Error Code"].ToString().IndexOf("Cancel"); ErrorTabPageDrawEventArgs tabPageDrawEvent; // 에러발생 if (error == -1) { // 에러 발생 갯수 증가 mErrorCount++; ErrorTabPageDrawClass tabPageDrawValue = new ErrorTabPageDrawClass(this.Com, true); tabPageDrawEvent = new ErrorTabPageDrawEventArgs(tabPageDrawValue); OnErrorMessageChanged(tabPageDrawEvent); } else { if (mErrorCount > 0) { // 에러 발생 갯수 감소 mErrorCount--; } int comError = e.DataRowErrorInfo["Error Code"].ToString().IndexOf("COM"); // COM 에러일경우는 점멸을 바로 없애준다. if (comError >= 0) { mErrorCount = 0; ErrorTabPageDrawClass tabPageDrawValue = new ErrorTabPageDrawClass(this.Com, false); tabPageDrawEvent = new ErrorTabPageDrawEventArgs(tabPageDrawValue); OnErrorMessageChanged(tabPageDrawEvent); } } // 모든 에러가 취소될경우 점멸끄기 if (error > 0 && mErrorCount == 0) { ErrorTabPageDrawClass tabPageDrawValue = new ErrorTabPageDrawClass(this.Com, false); tabPageDrawEvent = new ErrorTabPageDrawEventArgs(tabPageDrawValue); OnErrorMessageChanged(tabPageDrawEvent); } }
/// <summary> /// 에러 발생시 발생된 탭을 선택하여 깜빡이게 한다. 단, 탭이 보여지진 않고 헤더부분만 색이 변한다. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void MainForm_ErrorTabPageDraw(object sender, ErrorTabPageDrawEventArgs e) { errorTabPageIndex = tabControl.TabPages.IndexOf(mTabPage[e.ErrorTabPageDraw.com]); if (e.ErrorTabPageDraw.error) { mErrorStatus[errorTabPageIndex] = true; } else { //errorTabPageIndex = -1; mErrorStatus[errorTabPageIndex] = false; } }