본문 바로가기
728x90

Programming/WindowsForm3

Magnetic Window (sticky window) 전에도 글에서 언급 한적이 있습니다. 간단해 보이는 것은 머리에 이끼끼지 말라는 차원에서 알아보지 않고 무작정 만드는 편인데요 ​ 이번엔 메인 창에 자석처럼 자식 창이 붙는 기능을 만들어 봤습니다. ​ 처음엔 확장성을 너무 생각해서 붙어야 할 창에 존을 9분등 해서 어느 위치에 창이 있는지 찾고 거기서 또 얼마나 가까운지 등을 계산 하는 방식으로 구현 하다가..... (한 나절 다 보냄) 'ㄱ' 자 모양으로 붙이거나 좀 더 복잡한 모양으로 붙일 때 오히려 알고리즘이 복잡해 져서 구현 난이도가 올라가게 되어 단순하게 붙어 있는 창들 중에 지금 움직이고 있는 창이 붙을 위치면 붙이는 방식으로 바꿔 구현 했네요 (그래도 반나절이 지났습니다. ^^;) 덤으로 화면 구성 저장 및 로드 기능도 구현 했습니다. (코.. 2021. 2. 17.
C# WindowsForm 같은 Chart 같은 Area에 여러 Series를 다른 길이로 쓸 때 문제 해결 주식 차트인 candle type series 를 기본으로 하고 그위에 여러 지표를 표시 하기 위해 Series를 여러개 넣어 사용 하고 있었습니다. ​ 그런데 candle type series는 Full range로 데이터를 입력 하고 다른 series는 필요 값만 Points.AddXY() 합수를 이용해 입력을 하게 되면 자꾸 ArixX의 Lable이 사라지게 됐습니다. 딱히 기능에 문제도 없고 X label을 다른 chart에서 표시도 해주고 해서 참고 개발을 하다가 이제 더 이상 눈감을 수 없는 지점이 와서 하루종일 여러 방법으로 해결하려 했는데 결국..... 해결 방법을 알게 됐습니다. ​ 원인은 candle type series의 Xvalue를 넣 값과 이후 분석 기반으로 line type, .. 2021. 2. 17.
프로그래머가 만든 Thread에서 WindowsForm Control 접근시 문제 프로그래머가 생성한 Thread에서 WindowsForm의 control을 직접 접근 할시 오류가 발생 합니다. ​ 이 해결 법은 아래와 같이 (TextBox를 예로 든 코드 입니다.) 하시면 됩니다. if (box.InvokeRequired) { box.Invoke(new MethodInvoker(() => { box.Text = message; box.Update(); })); } else { box.Text = message; box.Update(); } 여기서 코딩 하시다 보면 매번 코드를 반복하는 부분이 생기는데 이 경우 Extension Methods를 이용하면 편하게 사용 하실 수 있습니다. https://docs.microsoft.com/en-us/dotnet/csharp/programmi.. 2021. 2. 17.