본문 바로가기

Software/C#4

C# 폼 중복실행 확인/방지 생성이 필요한 폼이 현재 켜져있는지 확인하는 소스입니다. 생성이 필요한 폼 이름을 formName에 전달하면 폼이 실행되어 있다면 해당 폼의 Form 값을, 폼이 실행되어 있지 않다면 null을 반환합니다. /// /// 해당 폼 이름으로 폼이 실행되어 있으면, 해당 폼의 Form 값을 반환합니다. /// /// 폼 이름 (대소문자 구별) /// Form 정보 public static Form GetForm(string formName) { foreach (Form frm in Application.OpenForms) if (frm.Name == formName) return frm; return null; } 이걸 이용하여 폼이 이미 켜져있을경우 GetForm(formName).Activate(); 로.. 2015. 7. 17.
로딩 상황 진행률 표시 BSP를 개발하던 중, 로더 폼에서 각종 데이터들을 초기화하는데 진행률을 쉽게 나타낼 수 있는 방법이 없을까 찾아보다가 이런 방법을 찾았네요! 배열 함수?? 배열 메서드?? 메서드를 배열에 대입하여 그 메서드들을 foreach 문으로 전부 실행하는 방법! 진행상황을 나타내기에 딱 좋은 방법인것 같아요. var actions = new Dictionary { {doAction1, 10}, {doAction2, 20}, {doAction3, 30}, {doAction4, 40}, }; progressBar.Minimum = 0; progressBar.Maximum = actions.Select(kvp=>kvp.Value).Sum(); progressBar.Value = 0; foreach(var action.. 2015. 6. 8.
어셈블리에 강력한 이름이 없습니다. 에러 해결방법 와.. 다중 프로젝트 솔루션을 만들고, 그 중 한 프로젝트에서 다른 프로젝트를 전부 연결하여 게시할려고 하는데 게시할라고 하니 어셈블리에 강력한 이름이 없다고 나오더군요. 설치할라고 하면 요렇게 뜨거나.. 요런식으로 아에 게시가 안되는 상황도.. 답은 있었네요. 프로젝트 설정에서 서명을 했었어야 합니다. 어셈블리 서명에 강력한 키 파일을 선택해서 (암호 최소 8자리 이상) ClickOnce 매니페스트 서명, 보안탭에 ClickOnce 보안규칙을 체크하고 게시하니 정상적으로 작동합니다. 혹시라도 관련 문제가 있었던분들은 참고하시고 해결하시기 바랍니다. XD 이것때문에 몇시간 뻘짓했네요. 2015. 6. 7.
레지스트리 저장, 읽기, 삭제 C#에서 레지스트리 접근/사용 방법! public static void RegSave(string name, object value) { RegistryKey reg = Registry.CurrentUser.CreateSubKey("SoftWare").CreateSubKey("Test"); reg.SetValue(name, value, RegistryValueKind.String); } 먼저 레지스트리 저장 방법입니다. 레지스트리 키 변수를 생성, CurrentUser\SoftWare\Test 에 name 이름으로 value를 저장합니다. public static string RegLoad(string name) { try { RegistryKey reg = Registry.CurrentUser.Crea.. 2015. 6. 6.