양식을 깜박이게하는 코드를 게시 한 경우 도움이됩니다.
이게 내가 생각할 수있는 가장 일반적인 해결책이다. (모니터 끄기 : 0 제외) :
this SO thread에 나와있는 답변을 사용해보십시오.
이
는 다음 클래스 만들기 :
은 기본적으로 당신이 할 필요가 양식에
class DrawingControl
{
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
private const int WM_SETREDRAW = 11;
public static void SuspendDrawing(Control parent)
{
SendMessage(parent.Handle, WM_SETREDRAW, false, 0);
}
public static void ResumeDrawing(Control parent)
{
SendMessage(parent.Handle, WM_SETREDRAW, true, 0);
parent.Refresh();
}
}
이 SuspendDrawing
에 깜빡하기 전에 호출을 추가 한 후 그것을에 ResumeDrawing
뭔가 같은 :
public void MyFlickeringFunction()
{
try
{
SuspendDrawing(this);
/*Your code goes here...*/
}
finally
{
ResumeDrawing(this)
}
}
windows가 형성되면 .. winforms를 의미합니까? 깜박임은 언제 발생합니까? 어떤 통제가 귀하의 양식에 있습니까? 탭이 이미 나쁜 위치에 있으면 제어합니다. 유일한 실제 해결책은 wpf로 변환하는 것입니다. – Sayse
폼의 Onpaint 이벤트를 사용하고 컨트롤이 책임이 있는지 확인하십시오. u는 폼의 DoubleBuffer를 true로 설정할 수 있습니다. –