질문:
실시간으로 DataGridView를 새로 고침합니다. 특히 업데이트 속도가 빠르고 셀 수가 많은 경우 깜박임, 정지 등의 시각적 결함이 발생하기 쉽습니다.
분석:
이중 버퍼링 기술은 오프스크린 버퍼를 사용하여 이러한 문제를 해결합니다.
해결책:
리플렉션이나 서브클래싱을 통해 DataGridView의 이중 버퍼링 기능을 활성화합니다.
DataGridView의 하위 클래스를 만들고 DoubleBuffered 속성을 노출합니다.
<code class="language-csharp">public class DBDataGridView : DataGridView { public new bool DoubleBuffered { get { return base.DoubleBuffered; } set { base.DoubleBuffered = value; } } public DBDataGridView() { DoubleBuffered = true; } }</code>
이 클래스를 프로젝트에 추가하고 DoubleBuffering을 true로 설정하세요.
리플렉션을 사용하여 프로그래밍 방식으로 DoubleBuffering 설정:
<code class="language-csharp">using System.Reflection; static void SetDoubleBuffer(Control ctl, bool DoubleBuffered) { typeof(Control).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, ctl, new object[] { DoubleBuffered }); }</code>
DataGridView의 DoubleBuffering을 전환하려면 SetDoubleBuffer를 호출하세요.
DoubleBuffering을 활성화하면 DataGridView는 오프스크린 버퍼를 사용하여 업데이트를 그려 빈번한 업데이트 중에 깜박임과 끊김 현상을 줄입니다.
위 내용은 DataGridView를 자주 업데이트할 때 깜박임을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!