728x90
반응형
728x170
■ Control 클래스에서 컨트롤 페인팅을 보류하고 재개하는 방법을 보여준다.
▶ ControlHelper.cs
namespace TestProject;
/// <summary>
/// 컨트롤 헬퍼
/// </summary>
public class ControlHelper
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// WM_SETREDRAW
/// </summary>
private const int WM_SETREDRAW = 0x000b;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region 페인팅 보류하기 - SuspendPainting(control)
/// <summary>
/// 페인팅 보류하기
/// </summary>
/// <param name="control">컨트롤</param>
public static void SuspendPainting(Control control)
{
Message message = Message.Create(control.Handle, WM_SETREDRAW, IntPtr.Zero, IntPtr.Zero);
NativeWindow nativeWindow = NativeWindow.FromHandle(control.Handle);
nativeWindow.DefWndProc(ref message);
}
#endregion
#region 페인팅 재개하기 - ResumePainting(control)
/// <summary>
/// 페인팅 재개하기
/// </summary>
/// <param name="control">컨트롤</param>
public static void ResumePainting(Control control)
{
IntPtr wordParameter = new IntPtr(1);
Message message = Message.Create(control.Handle, WM_SETREDRAW, wordParameter, IntPtr.Zero);
NativeWindow nativeWindow = NativeWindow.FromHandle(control.Handle);
nativeWindow.DefWndProc(ref message);
control.Invalidate();
}
#endregion
}
728x90
반응형
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM/.NET6] 비주얼 스튜디오 2022에서 단일 실행 파일 배포하기 (0) | 2022.10.10 |
---|---|
[C#/WINFORM/.NET6] ISynchronizeInvoke 인터페이스 : InvokeRequired 코드 패턴 자동화하기 (0) | 2022.10.09 |
[C#/WINFORM/.NET6] MethodInvoker 대리자 : InvokeRequired 코드 패턴 자동화하기 (0) | 2022.10.09 |
[C#/WINFORM/.NET6] 화면 돋보기 사용하기 (0) | 2022.10.09 |
[C#/WINFORM/.NET6] TextBox 클래스 : Multiline 속성이 False일 때 ENTER 키 누르는 경우 알림 소리 방지하기 (0) | 2022.10.07 |
[C#/WINFORM/.NET6] Control 클래스 : 컨트롤 페인팅 보류하기/재개하기 (WIN32 API 함수 사용) (0) | 2022.10.07 |
[C#/WINFORM] WebView2 클래스 사용하기 (0) | 2022.10.03 |
[C#/WINFORM] ColorTranslator 클래스 : ToHtml 정적 메소드를 사용해 16진수 색상 코드 구하기 (0) | 2022.10.02 |
[C#/WINFORM/.NET6] TimeZoneInfo 클래스 : ConvertTimeFromUtc 정적 메소드를 사용해 UTC 시간을 특정 지역 시간으로 변환하기 (0) | 2022.09.26 |
[C#/WINFORM/.NET6] DataGridView 클래스 : 복수 선택 행 삭제하기 (0) | 2022.08.30 |
댓글을 달아 주세요