Programming/C#(17)
-
winform에서의 크로스 스레드 해결하기.
다른 Framework도 마찬가지겠지만, winform에서도 mainThread(메인 UI가 동작하는 부분) 이외의 Thread에서 control을 제어하려고 하면 크로스 스레드 문제가 발생한다. (MFC할 때는 별 문제 없었던거 같았는데 ㅠ_ㅠ) 항상 해도 지나면 까먹길래 이번 기회에 확실히 기록해 두려고 한다.일단 아래와 같은 쓰레드에서 동작하는 코드가 있다고 치자. public void Thread_Run(){button1.Text = "테스트입니다.";} 위의 코드는 쓰레드 상에서는 동작하지 않는다. 물론 메인 쓰레드에서는 잘 동작한다.Winform에서는 메인 쓰레드 이외의 쓰레드에서 컨트롤을 건드릴 필요가 없다고 생각해서 쓰레드에서의 컨트롤 제어를 막아놓고 있다.하지만 개발을 하다보면 어떻게 메..
2014.11.23 -
winform 올림,내림, 반올림
C#에서의 소수 올림, 내림, 반올림 함수. Math.Ceiling(doubleValue); // 올림 Math.Round(doubleValue); // 반올림Math.Truncate(doubleValue); // 버림
2014.11.22 -
Winform에서 combo box edit disable 설정하기
C# Winform에서 combo box 안의 텍스트를 수정 못하게 하려면 어떻게 해야 할까? 다음과 같이 DropDownStyle을 DropDownList style로 변경하면 된다. comboBox.DropDownStyle = ComboBoxStyle.DropDownList; 위와 같이 코드로 작성하지 않고 속성 값을 변경함으로써 동일한 효과를 발생시킬 수 있다.
2014.11.21 -
웹 상의 이미지 다운받기
웹 상의 이미지 주소만 가지고 로컬 저장소에 다운 받기. 머 별다른 코드 설명은 필요 없을듯..
2014.09.17 -
html 파싱하기
python 처럼 C#도 beautifulsoup4 같은 화려하고 강력한 기능이 있나 싶어서 열씸히 구글링을 해보았는데, bs4만큼 편리하지는 않지만 C# 개발자들이 가장 많이 사용한다는 라이브러리 발견! 해당 라이브러리 가기(HtmlAgilityPack) 기본적인 사용법은 아래와 같다. 처음에는 많은 사람들이 WebBrowser 콘트롤을 이용하여, html을 파싱하길래 나 역시 그걸 이용하여 코드를 작성하였는데,(WebBrowser 콘트롤을 사용하면 web 로딩이 완료되었을 시, 내부적으로 domparsing도 진행해 주는것 같다.) 내 쪽 코드 문제인지, 어떤 이유인지는 모르게 자바스크립트 오류가 뜨면서 DocumentCompleted 이벤트가 종종 발생하지 않는 경우가 발생하였다. 자바스크립트 창을..
2014.09.15 -
WebClient Timeout 설정
WebClient 클래스를 이용하여 HTTP로 파일을 다운받는 코드 개발 중... 다운로드 timeout을 주고 싶은데 아무리 찾아봐도 WebClient.DownloadFile 함수에는 timeout 파라미터가 보이지 않는다.다운로드 역시 http를 통해 진행하기 때문에 WebClient의 request에 대한 timeout을 설정하면 된다.아래는 WebClient의 request를 설정하기 위한 custom class. class MyWebClient : WebClient{int m_nTimeOut = 0;public MyWebClient(int timeOut){m_nTimeOut = timeOut * 1000;} protected override WebRequest GetWebRequest(Uri a..
2013.09.07