본문 바로가기
반응형

C#/c#21

[Form] WInForm 을 이용한 지역화 WinForm 을 사용한 프로젝트가 있는데 한국, 미국이 아닌 제 3국에도 릴리즈 되는 제품이라 지역화를 하게 되었다. Visual Studio 에서 WinForm 디자이너에서 속성을 이용해 쉽게 다른 언어로 지역화가 가능하다. 문제는 지역화할 폼이 많고, 또한 제 3국의 언어로 변환해야 한다면 개발자가 일일이 변환해야 하는것은 불가능! 또한 그 많은 폼에서 사요하는 문자열 리소소를 3국 언어로 변환해서 다시 개발자가 일일이 변환하는 것도 불가능!! WinRes.exe 위와 같은 문제 때문에 Visual Studio 에서 별도의 툴로 지원한다. 폼 디자이너를 그대로 가져온듯 하다. 위치는 C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\WinRes.exe 물론 V.. 2012. 1. 10.
스레드로부터 안전한 방식으로 Windows Forms 컨트롤 호출 스레드로부터 안전한 방식으로 Windows Forms 컨트롤 호출 프로그램이 조금 복잡해 지면 스레드를 사용하게 된다. WinForm 으로 멀티 스레드를 사용하다가 스레드가 컨트롤에 접근 하려 하면 예외가 발생한다. (역시 C# 컴파일러는 냉정하다...) 예외 : InvalidOperationException 설명 : "control name 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스되었습니다." 이 예외는 디버깅 할 때 발생하며, Run-time 때는 발생하지 않는다. (프로그램을 강제 종료 시키지도 않더라.) CheckForIllegalCrossThreadCalls 프로퍼티 값을 false 로 설정하면 위 예외를 발생시키지 않게 할 수 있지만 안정적인 프로그램 작성을 위해 위 예외 처리.. 2012. 1. 10.
[C#] [List] 리스트 박스 내용을 Text파일로 저장 목록에 뿌려진 데이터를 읽어와 'Log.txt' 에 저장해주는 예제입니다. 간단한 방식이지만, 로그 내용을 보기에는 꽤 편리합니다. using System.IO; using System.Diagnostics; namespace EVEToolSet { public partial class LogDlg : Form { public LogDlg() { InitializeComponent(); } public void SaveLog() { StreamWriter sw; sw = new StreamWriter("Log.txt"); int nCount = LogList.Items.Count; for (int i = 0; i < nCount; i++) { LogList.Items[i] += "\r\n"; sw.Wri.. 2012. 1. 9.
반응형