1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Test
{
public class GuiUtil
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
public const int WM_SETREDRAW = 0x000B;
/// <summary>
/// コントロール(子コントロールも含む)の描画を停止します。
/// </summary>
/// <param name="control">対象コントロール</param>
public static void BeginUpdate(Control control)
{
SendMessage(control.Handle, WM_SETREDRAW, 0, 0);
}
/// <summary>
/// コントロール(子コントロールも含む)の描画を開始します。
/// </summary>
/// <param name="control">対象コントロール</param>
public static void EndUpdate(Control control)
{
SendMessage(control.Handle, WM_SETREDRAW, 1, 0);
control.Refresh();
}
}
}
|