c# 배열 채우기 – Array.Fill
배열을 특정한 값 하나로 채워야 할 때가 있다. 아래와 같이 array.fill 메떠드를 이용한다.
배열을 특정한 값 하나로 채워야 할 때가 있다. 아래와 같이 array.fill 메떠드를 이용한다.
아래 코드는 마우쓰 포인터가 있는 위치에서 왼쪽 버튼을 클릭하게 하는 예제다. 버튼을 누른 뒤에는 반드시 떼어야 클릭이 된다. 아래 코드는 c++ 문법이다. DWORD는 UInt32로 ULONG_PTR는 IntPtr로 바꾼 거에 유의한다. 0x0002와 0x0004는 상수 변수들인 MOUSEEVENTF_LEFTDOWN과 MOUSEEVENTF_LEFTDOWNUP의 값들이다. 상수로 선언해서 써도 되고 위와 같이 그냥 써도 된다. 다른 패러미터들은 mouse_event function (winuser.h)에서 확인할 수 있다.
아래 예제는 마우쓰 포인터를 모니터의 특정 위치로 가게 하는 예제다. 패러미터들은 각각 x와 y의 좌표이며 x 값이 음수인 건 매인 모니터의 왼쪽 모니터 값이기 때문이다. 아래 코드는 c++ 문법이다. .네트에서 호출할 때 [in]은 무시하고 쓰지 말아야 하는 거에 유의한다.
아래의 코드는 마우쓰 포인터의 위치를 구하는 예제다. 포인터가 폼을 벗어나도 구할 수 있고 모니터가 여러 대일 때에도 가능하다. GetCursorPos 함수는 .네트에는 없고 win32 api에 있다. 델파이는 user32.dll을 랩wrap해 둬서 user32.dll에 있는 여러 함수들을 쉽게 쓸 수 있지만 .네트는 같은 회사 제품들임에도 더 번거롭게 되어 있다. 아래와 같이 직접 불러다 써야 한다.
아래의 코드는 아래 애플리캐이션이 실행되는 동안 cpu를 얼마나 사용하는가 구하여 출력하는 예제다. 애플리캐이션이 실행되는 동안 cpu 부하를 관찰할 때 요긴하다. 디버그 환경이라면 비주얼 스투디오로 쉽게 확인할 수 있지만 릴리스 환경이라면 윈도우즈의 작업 관리자를 이용하든지 아래와 같이 해야 한다. 번거롭게 아래와 같이 하는 이유는 물론 그 결과를 가공하기 위해서다. 비록 비주얼 객체를 제어하여 cpu의 사용률을 출력하지만…
.네트에는 세 개의 타이머들이 있다. system.windows.forms.timer는 디자인 모드에서 툴박스로부터 끌어다 쓸 수 있다. 제일 흔하게 이용된다. 매인 뜨레드에서 작동하므로 비주얼 객체들을 제어할 때 편하다. 하지만 매인 뜨레드에 부하를 더한다. system.timers.timer는 멀티뜨레드로 작동한다. 비주얼 객체들을 바로 제어하려 하면 크로쓰-뜨레드 예외로 처리된다. 이런 문제를 피하려면 invoke를 이용해야 한다. 비주얼 객체들을 제어하는 것보다는 부하가 큰 작업을 할 때…
기술이 좋아져서 예전보다 커다란 모니터를 비싸지 않은 가격에 살 수 있게 되었다. 웹 써핑이나 할 때에는 큰 모니터가 특별히 필요하지는 않지만 금융 상품 매매를 할 때에는 큰 게 좋다. 차트를 크게 보면 더 긴 기간을 확인할 수 있고 매매 애플리캐이션을 쓸 때에도 여러 정보들을 동시에 나오게 하여 보는 게 일반적이기 때문이다. 모니터의 물리적인 크기가 커지고…
아래의 코드는 두 개의 버튼들을 하나의 배열에 넣고 하나의 이벤트 메떠드로 제어하는 예제다. 리스트에 넣어도 된다. Buttons[0].Click +=까지만 입력하고 탭 키를 누르면 이벤트 메떠드가 자동으로 만들어진다. 위의 코드를 실행하고 버튼을 클릭하면 button1나 button2가 출력된다. 그러나 아래의 코드는 다르다. 버튼의 경우와는 달리 그냥 DataGridView라고만 나온다. 따라서 두 개의 DataGridView들 가운데 어느 건지 모를 거 같다. 그러나…
칼럼의 색을 바꾸기 위해 DataGridView.ColumnHeadersDefaultCellStyle을 아무리 변경해 봐야 색은 바뀌지 않는다. DataGridView.EnableHeaderVisualStyles를 false로 해야 적용된다.