프로그래밍/C# 15

[C#] Winform/Devexpress GridView DoubleClick Event

Devexpress GridControl에서 Doubleclick을 처리하기 위한 방법 코드 // GridControl var gridView = (gridControl.MainView as GridView); gridView.DoubleClick += gridView_DoubleClick; /// /// GridView DoubleClick Event /// private void gridView_DoubleClick(object sender, EventArgs e) { DXMouseEventArgs ea = e as DXMouseEventArgs; GridView view = sender as GridView; GridHitInfo info = view.CalcHitInfo(ea.Location); ..

프로그래밍/C# 2023.06.29

[C#] Winform/WPF 디자인모드(DesignMode) 구분하기

Winform 개발 시 UserControl 같은곳에서 Load Event시 Database Call 혹은 실제로 런타임 중에만 실행되야 되는 코드가 있을 경우 DesignMode로 구분이 필요합니다. 샘플코드 bool isInWpfDesignerMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime); bool isInFormsDesignerMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv"); // Winform 에서 폼에서 직접 사용시 아래와 같은 프로퍼티를 추가한후 사용한다. private bool IsInFormsDesignerMode { get {..

프로그래밍/C# 2023.06.28

[C#] 경로 유효성 체크 - IsValidPath

경로 유효성 체크 IsValidPath 설치파일 등에서 경로 체크시에 사용된다. /// /// 경로가 유효한지 체크한다. /// /// 경로 private bool IsValidPath(string path) { // 경로 길이 체크 if (path.Length < 3) return false; // 드라이브 문자열 체크 Regex driveCheck = new Regex(@"^[a-zA-Z]:\\$"); if (driveCheck.IsMatch(path.Substring(0, 3)) == false) return false; // 경로 이름에 사용할 수 없는 문자가 있는지 체크 string invalidPathChars = new string(Path.GetInvalidPathChars()); inva..

프로그래밍/C# 2023.03.23

[C#] 레지스트리 등록, 조회, 삭제

32비트 레지스트리 등록, 조회, 삭제 // 경로: 컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\{ProductName} var reg32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); RegistryKey reg32Sub = reg32.CreateSubKey("SOFTWARE").CreateSubKey(ProductName); reg32Sub.SetValue("key", "32bit_key"); // 값 추가 reg32Sub.GetValue("key") // 값 조회 reg32Sub.DeleteValue("key"); // 값 삭제 64비트 레지스트리 등록, 조회, 삭제 //..

프로그래밍/C# 2023.03.23

[C#] 참조 없이 인스턴스 생성하는 방법

exe, dll 파일 참조 없이 인스턴스 생성하는 방법 Activator.CreateInstance함수를 사용하면 된다. // // Activator.CreateInstance(assemblyName, typeName) // assemblyName: 파일이름 (확장자를 제외한 파일명) // typeName: 네임스페이스 포함 클래스명 // ObjectHandle handle = Activator.CreateInstance("WindowsFormsApp1", "WindowsFormsApp1.Form1"); Form form = (Form)handle.Unwrap(); 샘플

프로그래밍/C# 2023.03.21

[C#] winform MessageBox Topmost로 띄우기

winform 개발 시 Topmost로 설정된 폼 위로 MessageBox를 Show해야되는 경우가 있을때 Topmost True로 Show를 안할 시 메세지 박스가 가려지기 때문에 프로그램이 멈춘 것 처럼 인식 되므로 아래의 구문처럼 메세지 박스를 호출 해야된다. MessageBox.Show(new Form() { TopMost = true }, "TopMost MessageBox", "qratedev.tistory.com"); 메서드 설명 MessageBox.Show 메서드 (System.Windows.Forms) | Microsoft Learn MessageBox.Show 메서드 (System.Windows.Forms) 메시지 상자를 표시합니다. learn.microsoft.com

프로그래밍/C# 2023.03.06

[C#] 프로세스 이름 기준으로 종료 시키기 - kill by name

Process.GetProcessByName 특정프로세스가 여러개 떠있을 경우 종료 시켜야되는 상황이 있어서 간단히 콘솔로 만들어서 사용 해봤습니다. using System; using System.Diagnostics; /// /// 프로세스 이름 기준으로 해당하는 프로세스를 전부 종료한다. /// /// 프로세스 이름 private static void KillProcessByName(string processName) { Process[] processList = Process.GetProcessesByName(processName); if (processList.Length > 0) { foreach (Process p in processList) { p.Kill(); } } else // 종료할..

프로그래밍/C# 2021.04.22

[C#] 태블릿모드에서 가상키보드 호출시 폼크기 자동으로 변경

키보드가 없는 환경에 들어가는 프로그램을 개발중에 가상키보드 호출시 화면크기 조정이 필요해서 찾아보는 중 원래는 tabtip.exe 프로세스 감지시 form 조정하는 소스 구현중에 버그가많아서 다른거 찾아보다가 ms프로그램은 전부 자동으로 조정되길래 비교해봤더니 상태창 있는 프로그램만 자동으로 변경이 되는걸 확인했다. 결론은 winform의 경우 statusStrip만 추가하면 알아서 조정된다. 크기조정에 관한 작업은 데스크탑 모드여도 작동은 똑같이한다.

프로그래밍/C# 2021.02.17

[C#] SQLite Table 존재유무 체크 하고 생성하기

* 코드 string query = string.Format("SELECT COUNT(*) FROM sqlite_master WHERE Name = '{0}'", "TEST"); int result = Convert.ToInt32(this.ExecuteScalar(query)); if (result < 1) // 1: 테이블존재, 0: 테이블없음 { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.AppendLine(@"CREATE TABLE ""TEST"" ( "); sb.AppendLine(@"""SEQ"" INTEGER, "); sb.AppendLine(@"""LOG_TEXT"" TEXT, "); sb.AppendLine(@"P..

프로그래밍/C# 2019.10.14
반응형