WeifenLuo 라이브러리

개발 2016. 3. 29. 23:17

C#에서 다음과 같은 분할창이 되도록 해주는 라이브러리다.

image

image

기능적으로도 매우 유용한 데다 코드 자체도 라이브러리를 제작할 사람이라면 레퍼런스로 사용할 수 있을 정도로 좋은 것 같다. 단점이라면 문서화가 잘 안 되어 있어서 코드를 직접 분석하지 않고는 사용하기 힘들었다는 점 정도가 있었는데 요즘은 이래저래 (다른 사람들의 협조 아래?) 참고할 만한 곳들도 생기는 듯 싶다.

공식 : http://dockpanelsuite.com/

http://www.independent-software.com/weifenluo-dockpanelsuite-tutorial-cookbook/

https://media.readthedocs.org/pdf/dockpanelsuite/latest/dockpanelsuite.pdf

 

누리 개발 시 있었던 삽질 하나 기록. 클라이언트 로그 창은 원래 로그인 화면이 있기 때문에 처음부터 메인 화면에 저렇게 붙어있지 않은데, 그래서 로그 창을 먼저 Show() 해버리고 나중에 라이브러리의 메소드인 DockPanel.Show(…)를 다시 호출하면 문제가 발생했다. 해당 창들은 모두 닫더라도 소멸시키지 않고 재사용하기 때문에 Close() 하는 대신 Hide()를 하고 다시 Show(…) 를 하면 되겠지 싶었는데 계속 문제가 나서 코드를 추적해보니, Hide() 함수 또한 재정의되어 있어서 창을 즉시 감추지 않는 문제가 있더란 말이다. 근데 마찬가지로 재정의된 Show() 메소드는, 내부적으로 DockPanel이 설정되지 않은 상태에서는 그냥 Forms.Show()를 호출한다. 하지만 Hide() 메소드는 그런 것 없고 그냥 자기 것만 사용해서 문제가 발생했던 것. 때문에 로그 창의 Hide() 메소드를 Forms의 것으로 캐스팅하여 강제 호출한 다음 다시 Show(…)를 해서 간신히 해결했다는 이야기. 이건 왠지 Hide() 메소드를 수정해야할 것으로 보이는데…. 아, 물론 최신 버전에서는 수정되었을지도 모른다.

Posted by OOJJRS
,