c# 모들(modal) 폼 만들기
modal form이란 다른 폼으로 제어권을 넘겨주지 않는 폼을 말한다. modal은 mode의 형용사로 mode는 ‘특정한 상태’를 뜻하고 modal은 ‘실행 방법이 지정된’이라는 의미다. 모들 폼에서 벗어나려면 모들 폼을 종료해야 한다.
modal form이란 다른 폼으로 제어권을 넘겨주지 않는 폼을 말한다. modal은 mode의 형용사로 mode는 ‘특정한 상태’를 뜻하고 modal은 ‘실행 방법이 지정된’이라는 의미다. 모들 폼에서 벗어나려면 모들 폼을 종료해야 한다.
이베스트투자증권의 api를 이용하여 코스피와 코스닥 합해 2,500개 정도 종목들의 체결 데이터와 호가 데이터를 수신하여 List에 담고 있다. 약간의 필터링을 하긴 하지만 그래도 그 양은 상당하다. 장이 끝날 무렵 1gb를 넘는다. 이렇게 수신하는 건 저장하기 위한 게 아니라 연산을 위한 것인데 대개의 경우 연산은 최근 한 시간 정도의 대이터를 대상으로 한다. 따라서 수 시간 전의 리스트…
모든 프로그래밍 언어들에서 List는 메모리의 연속된 공간을 차지하고 LinkedList는 그렇지 않다. 메모리의 연속된 공간을 차지한다는 건 그 크기가 늘어날 때 통째로 복사를 할 새로운 공간이 있어야 하고 그 자리에 내용 전체를 복사한다는 의미로 대충 생각해 봐도 부담스러운 작업이다. 그러나 이런 구조에서는 이터래이트와 랜덤 액세스가 무척 빠르다. 반대로 연속된 공간을 차지하지 않는 경우에는 각 아이템이 그…
DataGridView가 기본으로 설정되어 있는 상태에서는 칼럼의 헤더를 가운데로 얼라인해도 헤더 텍스트는 한가운데에 출력되지 않고 왼쪽으로 쏠려 나온다. 칼럼은 기본적으로 쏘트를 할 수 있게 설정되어 있다. 칼럼 헤더를 클릭하여 쏘트를 하게 되면 헤더의 오른쪽에 삼각형의 아이콘이 만들어지는데 이게 출력될 자리가 확보되어 있다. 따라서 칼럼 헤더를 한가운데에 나오게 하려면 쏘트 기능을 못 쓰게 설정해야 한다. 아래는 쏘트…
테이블 형태의 데이터를 이용해야 할 때 DataTable과 List 가운데 어느 걸 써야 할지 고민스러울 수 있다. 클래스를 만들어 List에 넣어 이용하는 거보다 DataTable을 쓰는 게 더 편하지만 느리다. 그렇다면 얼마나 느릴까? 아래는 인덱스를 안다는 전제 아래 인덱스로 액세스하여 데이터를 읽는 데 걸리는 시간들을 측정하는 예제다. 웜-업을 제외한 다섯 번씩의 평균은 DataTable이 859,208이고 List가 75,545로 열…
‘_’를 underscore라고 한다. 이 문자를 출력하려 한 때 드물게 이게 사라져서 보이지 않을 때가 있다. 문자열 처리를 틀리게 해서 그런가 코드를 암만 살펴봐도 답은 나오지 않는데 이 문제는 비주얼 컨트롤의 높이가 너무 좁아서 그런 거다. 언더스코어는 일반적인 문자들보다 아래에 그려진다. 그래야 문자와 겹치지 않고 문자 아래에 밑줄로 보이기 때문이다. 예를 들면 이렇다._ a 가언더스코어와 문자에…
.네트의 시간은 초 아래에 일곱 자리의 시간이 더 있는데 이걸 fractional second라 하며 hh:mm:ss.fffffff로 표기한다. millisecond는 1/1,000초이므로 적어도 논리적으로는 이거보다 더 정밀한 값이다. 그러나 사실적으로는 그렇게까지 정밀하게 작동하지는 않는다. TimeSpan을 출력할 때 이 fractional second가 문제될 수 있다. 아래는 TimeSpan을 출력하는 기본적인 예제다. 그런데 초까지만 출력해야 할 때도 있지만 아래의 예제는 작동하지 않는다. 아래와 같이…
DataTable에는 대개 많은 행들이 있는데 모든 행들이 늘상 필요한 건 아니다. 필요할 때마다 많은 행들 가운데 일부만 추려서 보든지 계산하든지 한다. 행을 검색하여 출력하기 아래는 DataTable에 시간과 정수를 채운 뒤 시간을 조건으로 하여 만족하는 행들만 보이게 하는 예제다. 이때 이용하는 게 DataTable.DefaultView 프라퍼티인데 이거는 customized view 즉 원래 DataTable의 내용은 바꾸지 않고 만들어진 껍데기에 불과하다….
컴퓨터 프로그래밍을 하다 보면 어느 순간 자연스럽지 않게 cpu나 메모리의 점유가 올라간 걸 느끼게 될 때가 있다. 보통은 최근에 추가하거나 수정한 부분을 의심하여 이 부분을 주석으로 처리한 뒤 앞뒤 상황들을 비교하며 수습한다. 그러나 이렇게 단순한 방법으로는 해결이 되지 않는 경우들도 많다. 이럴 때 가장 원초적이고 확실한 방법은 문제가 생길 수 있는 모든 부분에 카운트를 달아서…