즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

c# 44

[2021.10] XtraGrid 특정 Row의 컬럼 값 편집 여부를 설정하는 방법

안녕하세요. 오랜만에 올립니다. 엑셀처럼 편집이 가능한 그리드를 구현하고자 하는데 특정 Row의 특정 컬럼만 에디트를 가능하게 하거나 혹은 불가능하게 할 경우 아래 "ShowingEditor"이벤트에서 구현하시면 됩니다. private bool USCanada(GridView view, int row) { GridColumn col = view.Columns["Country"]; string val = Convert.ToString(view.GetRowCellValue(row, col)); return (val == "USA" || val == "Canada"); } // disable editing private void gridView1_ShowingEditor(object sender, System..

[2021.09] fo-DICOM Log4Net 사용방법

안녕하세요. 제가 의료기기 쪽 IT 솔루션을 개발하다보니 fo-DICOM이라는 라이브러리를 사용하는데 Logger연동이 쉽지 않아서 작성해봅니다. 2016년 이슈가 떴으면 제대로 문서화를 해놓을 것이지 공식 홈페이지에는 존재하지 않는 방법입니다. 보통 Log4Net Config 파일은 Properties/AssemblyInfo.cs 맨 끝에 넣는 것이 일반적인데, fo-DICOM의 Log4Net 인터페이스가 그것을 인지하지 못하는 버그(이슈)가 있습니다. 그래서 다음 코드를 프로젝트 Root에 있는 App.Config파일에 추가합니다. 그리고 Program.cs 도입부분에 다음 코드를 추가합니다. Dicom.Log.LogManager.SetImplementation(Dicom.Log.Log4NetMana..

개발/C# 2021.09.06

[2021.09] 입력문자가 어떤 언어인지 분별해주는 함수

안녕하세요! 입력된 문자가 어느나라 문자인지 판별하는 함수를 소개합니다. // OneByteChar = 영어 public enum LanguageType { Korean, KoreanJaum, KoreanMoum, Japanese, Chinese, OneByteChar, UnKnown, OverBound } 이렇게 상수 선언합니다. public LanguageType GetLanguageType(string sourceString) { if (sourceString.Length > 2) return LanguageType.OverBound; byte[] _tmp = System.Text.Encoding.Default.GetBytes(sourceString); if (_tmp.Length != 2) ret..

개발/C# 2021.09.04

[2021.06] C#에서 Cross-Thread Operation not valid 오류

안녕하세요. 공통모듈을 보통 DLL로 만들어서 호출하는데 이벤트를 발생시켜 DLL을 사용하는 클래스에서 클래스내 컴포넌트나 다른 클래스에 값을 변경하고자 할 때 이런 오류가 가끔(자주가 아니라 더 잡기 힘드나, 그나마 쉬운) 발생하는데 그것을 해결할 방법입니다. 마소 사이트 참조: https://docs.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls?view=netframeworkdesktop-4.8 스레드로부터 안전한 컨트롤 호출 - Windows Forms .NET Framework 스레드로부터 안전한 방식으로 크로스 스레드 컨트롤을 호출 하 여 앱에서 ..

개발/C# 2021.06.09

[2021.06] DevExpress XtraMessagebox 및 버튼의 폰트수정(v2)

안녕하세요. 메시지 박스(XtraMessageBox)에 대해 심층적으로 파보겠습니다. 오늘 기술된 내용의 특징은 다음과 같습니다. 스크린 사이즈(=해상도)가 커질 수록 메시지와 타이틀, 버튼의 폰트가 작아지는 것을 방지 버튼의 Locale설정 또는 커스텀 가능 자 먼저 소스를 보시죠... MsgBox 함수가 주요함수입니다. 전역 (싱글톤) 클래스로 구현된 상태라 메시지 박스 아규먼트외에 스크린 사이즈를 추가로 넣었습니다. 이것을 통해 폰트 크기를 특정합니다. 스크린 사이즈는 호출할 때 this.Width로 넣어서 호출하시면 됩니다. // 2021.06.15 추가 - 자동닫기 옵션을 추가합니다. static int MsgBox_ScreenSize = 0; public static DialogResult M..

1 ··· 4 5 6 7 8 9