뚠냥의 개발자 성장기

C# DoubleBuffer 기능 프로그래밍으로 직접 이용하기 본문

C# Programming

C# DoubleBuffer 기능 프로그래밍으로 직접 이용하기

뚠냥 2019. 9. 27. 14:37

안녕하세요 !

오랜만에 포스팅을 또 남기네요.. 

바쁘다는 이유로 이래저래.. 뜸하네요 죄송합니다.. T.T

 

DoubleBuffer은 DoubleBuffering을 할 수 있도록 설정해주는 것을 의미하는데요!

DoubleBuffering, 더블 버퍼링은 그래픽 작업시에 끊김이 없도록 설정해주는 것을 의미합니다.

 

대부분 Datagridview 컴포넌트를 누른 사이에서 F4을 눌러 속성창을 열면 

상단에 이렇게 나오는데요!

 

F4를 누르면 속성창 상단에 이렇게 보여요!

좌측부터 버튼들을 설명드리자면, 

카테고리별로 묶어서 보기, ABC 순으로 정렬하여 보기, 속성창, 이벤트핸들러창, 속성페이지 이렇게 나오는데 

 

저같은 경우는 ABC순으로 정렬 후 속성창을 눌러서 보겠습니다!

 

오잉? 속성에 DoubleBuffrer 속성이 없는데요?

이런식으로 속성창에 DoubleBuffer이라는 속성이 간혹 안보이는 경우가 있습니다.

( 이건 VS 버그이거나, 뭔가 잘못 코딩을 해서 속성이 안보이는 것이 아닙니다. !! )

 

반대로, 속성창에 DoubleBuffer가 보이는 경우도 많은데요! 그런경우에는 True, False로 설정을 해주면 되지만

속성이 보이지 않는데 Datagridview 컴포넌트처럼 자주 줄바꿈이나 빠른 줄바꿈을 해야하는 경우라면

깜빡이거나 끊기는 현상이 눈에 거슬리게 됩니다.

 

이럴땐 코드로 작성하여 DoubleBuffer을 활성화 및 설정할 수 있는데요 보실까요?

 

이렇게 작성하면 DoubleBuffer을 켤 수 있답니다! 

 

typeof(지정할 컴포넌트 종류) 적어주시구요! Datagridview_Name이라고 빨간줄 쳐진 부분에 지정할 컴포넌트의 이름을 

적어주시면 조금 부드러운 컴포넌트 사용이 가능합니다.

 

이것으로 코드로 직접 Doublebuffer속성 지정하기 배워봤습니다.

 

주말 하루전 금요일, 좋은 하루 보내시길 바래요 ! 

 

마지막으로 직접 코드를 작성하시는 것도 실력이 느는 방법이지만, 귀찮으신 분들을 위해 코드도 적어놓을게요!

 

typeof(DataGridView).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, Datagridview_Name, new object[] { true });

 

이제 진짜 뿅!