Control.Invalidate 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특정 컨트롤 영역을 무효화하고 그리기 메시지를 컨트롤로 보냅니다.
오버로드
Invalidate(Region, Boolean) |
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다. |
Invalidate(Rectangle, Boolean) |
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다. |
Invalidate(Region) |
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. |
Invalidate(Boolean) |
특정 컨트롤 영역을 무효화하고 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다. |
Invalidate() |
컨트롤의 전체 화면을 무효화하고 컨트롤을 다시 그립니다. |
Invalidate(Rectangle) |
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. |
Invalidate(Region, Boolean)
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.
public:
void Invalidate(System::Drawing::Region ^ region, bool invalidateChildren);
public void Invalidate (System.Drawing.Region region, bool invalidateChildren);
public void Invalidate (System.Drawing.Region? region, bool invalidateChildren);
member this.Invalidate : System.Drawing.Region * bool -> unit
Public Sub Invalidate (region As Region, invalidateChildren As Boolean)
매개 변수
- invalidateChildren
- Boolean
컨트롤의 자식 컨트롤을 무효화하는 경우 true
이고, 그렇지 않으면 false
입니다.
설명
메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
추가 정보
적용 대상
Invalidate(Rectangle, Boolean)
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.
public:
void Invalidate(System::Drawing::Rectangle rc, bool invalidateChildren);
public void Invalidate (System.Drawing.Rectangle rc, bool invalidateChildren);
member this.Invalidate : System.Drawing.Rectangle * bool -> unit
Public Sub Invalidate (rc As Rectangle, invalidateChildren As Boolean)
매개 변수
- invalidateChildren
- Boolean
컨트롤의 자식 컨트롤을 무효화하는 경우 true
이고, 그렇지 않으면 false
입니다.
설명
메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
추가 정보
적용 대상
Invalidate(Region)
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다.
public:
void Invalidate(System::Drawing::Region ^ region);
public void Invalidate (System.Drawing.Region region);
public void Invalidate (System.Drawing.Region? region);
member this.Invalidate : System.Drawing.Region -> unit
Public Sub Invalidate (region As Region)
매개 변수
설명
메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
추가 정보
적용 대상
Invalidate(Boolean)
특정 컨트롤 영역을 무효화하고 그리기 메시지를 컨트롤로 보냅니다. 또한 필요에 따라 컨트롤에 할당된 자식 컨트롤을 무효화합니다.
public:
void Invalidate(bool invalidateChildren);
public void Invalidate (bool invalidateChildren);
member this.Invalidate : bool -> unit
Public Sub Invalidate (invalidateChildren As Boolean)
매개 변수
- invalidateChildren
- Boolean
컨트롤의 자식 컨트롤을 무효화하는 경우 true
이고, 그렇지 않으면 false
입니다.
설명
메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
추가 정보
적용 대상
Invalidate()
컨트롤의 전체 화면을 무효화하고 컨트롤을 다시 그립니다.
public:
void Invalidate();
public void Invalidate ();
member this.Invalidate : unit -> unit
Public Sub Invalidate ()
예제
다음 코드 예제에서는 사용자가 이미지 또는 이미지 파일을 폼으로 끌어 놓을 때 표시되도록 합니다. 메서드는 OnPaint 양식이 그려질 때마다 이미지를 다시 칠하도록 재정의됩니다. 그렇지 않으면 이미지가 다음 다시 칠할 때까지만 유지됩니다. 이벤트 처리 메서드는 DragEnter 폼으로 끌 데이터의 형식을 결정하고 적절한 피드백을 제공합니다. DragDrop 데이터에서 를 만들 수 있는 경우 Image 이벤트 처리 메서드는 양식에 이미지를 표시합니다. DragEventArgs.X 및 DragEventArgs.Y 값은 화면 좌표이므로 예제에서는 메서드를 PointToClient 사용하여 클라이언트 좌표로 변환합니다.
private:
Image^ picture;
Point pictureLocation;
public:
Form1()
{
// Enable drag-and-drop operations and
// add handlers for DragEnter and DragDrop.
this->AllowDrop = true;
this->DragDrop += gcnew DragEventHandler( this, &Form1::Form1_DragDrop );
this->DragEnter += gcnew DragEventHandler( this, &Form1::Form1_DragEnter );
}
protected:
virtual void OnPaint( PaintEventArgs^ e ) override
{
// If there is an image and it has a location,
// paint it when the Form is repainted.
Form::OnPaint( e );
if ( this->picture != nullptr && this->pictureLocation != Point::Empty )
{
e->Graphics->DrawImage( this->picture, this->pictureLocation );
}
}
private:
void Form1_DragDrop( Object^ /*sender*/, DragEventArgs^ e )
{
// Handle FileDrop data.
if ( e->Data->GetDataPresent( DataFormats::FileDrop ) )
{
// Assign the file names to a String* array, in
// case the user has selected multiple files.
array<String^>^files = (array<String^>^)e->Data->GetData( DataFormats::FileDrop );
try
{
// Assign the first image to the picture variable.
this->picture = Image::FromFile( files[ 0 ] );
// Set the picture location equal to the drop point.
this->pictureLocation = this->PointToClient( Point(e->X,e->Y) );
}
catch ( Exception^ ex )
{
MessageBox::Show( ex->Message );
return;
}
}
// Handle Bitmap data.
if ( e->Data->GetDataPresent( DataFormats::Bitmap ) )
{
try
{
// Create an Image and assign it to the picture variable.
this->picture = dynamic_cast<Image^>(e->Data->GetData( DataFormats::Bitmap ));
// Set the picture location equal to the drop point.
this->pictureLocation = this->PointToClient( Point(e->X,e->Y) );
}
catch ( Exception^ ex )
{
MessageBox::Show( ex->Message );
return;
}
}
// Force the form to be redrawn with the image.
this->Invalidate();
}
void Form1_DragEnter( Object^ /*sender*/, DragEventArgs^ e )
{
// If the data is a file or a bitmap, display the copy cursor.
if ( e->Data->GetDataPresent( DataFormats::Bitmap ) || e->Data->GetDataPresent( DataFormats::FileDrop ) )
{
e->Effect = DragDropEffects::Copy;
}
else
{
e->Effect = DragDropEffects::None;
}
}
private Image picture;
private Point pictureLocation;
public Form1()
{
// Enable drag-and-drop operations and
// add handlers for DragEnter and DragDrop.
this.AllowDrop = true;
this.DragDrop += new DragEventHandler(this.Form1_DragDrop);
this.DragEnter += new DragEventHandler(this.Form1_DragEnter);
}
protected override void OnPaint(PaintEventArgs e)
{
// If there is an image and it has a location,
// paint it when the Form is repainted.
base.OnPaint(e);
if(this.picture != null && this.pictureLocation != Point.Empty)
{
e.Graphics.DrawImage(this.picture, this.pictureLocation);
}
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
// Handle FileDrop data.
if(e.Data.GetDataPresent(DataFormats.FileDrop) )
{
// Assign the file names to a string array, in
// case the user has selected multiple files.
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
try
{
// Assign the first image to the picture variable.
this.picture = Image.FromFile(files[0]);
// Set the picture location equal to the drop point.
this.pictureLocation = this.PointToClient(new Point(e.X, e.Y) );
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
// Handle Bitmap data.
if(e.Data.GetDataPresent(DataFormats.Bitmap) )
{
try
{
// Create an Image and assign it to the picture variable.
this.picture = (Image)e.Data.GetData(DataFormats.Bitmap);
// Set the picture location equal to the drop point.
this.pictureLocation = this.PointToClient(new Point(e.X, e.Y) );
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
// Force the form to be redrawn with the image.
this.Invalidate();
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
// If the data is a file or a bitmap, display the copy cursor.
if (e.Data.GetDataPresent(DataFormats.Bitmap) ||
e.Data.GetDataPresent(DataFormats.FileDrop) )
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
Private picture As Image
Private pictureLocation As Point
Public Sub New()
' Enable drag-and-drop operations.
Me.AllowDrop = True
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
' If there is an image and it has a location,
' paint it when the Form is repainted.
If (Me.picture IsNot Nothing) And _
Not (Me.pictureLocation.Equals(Point.Empty)) Then
e.Graphics.DrawImage(Me.picture, Me.pictureLocation)
End If
End Sub
Private Sub Form1_DragDrop(ByVal sender As Object, _
ByVal e As DragEventArgs) Handles MyBase.DragDrop
' Handle FileDrop data.
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
' Assign the file names to a string array, in
' case the user has selected multiple files.
Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
Try
' Assign the first image to the 'picture' variable.
Me.picture = Image.FromFile(files(0))
' Set the picture location equal to the drop point.
Me.pictureLocation = Me.PointToClient(New Point(e.X, e.Y))
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
End Try
End If
' Handle Bitmap data.
If e.Data.GetDataPresent(DataFormats.Bitmap) Then
Try
' Create an Image and assign it to the picture variable.
Me.picture = CType(e.Data.GetData(DataFormats.Bitmap), Image)
' Set the picture location equal to the drop point.
Me.pictureLocation = Me.PointToClient(New Point(e.X, e.Y))
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
End Try
End If
' Force the form to be redrawn with the image.
Me.Invalidate()
End Sub
Private Sub Form1_DragEnter(ByVal sender As Object, _
ByVal e As DragEventArgs) Handles MyBase.DragEnter
' If the data is a file or a bitmap, display the copy cursor.
If e.Data.GetDataPresent(DataFormats.Bitmap) _
Or e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
설명
메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
추가 정보
적용 대상
Invalidate(Rectangle)
지정된 컨트롤 영역을 무효화하고, 이 영역을 다음 그리기 작업에서 다시 그릴 컨트롤의 업데이트 영역에 추가하고, 그리기 메시지를 컨트롤로 보냅니다.
public:
void Invalidate(System::Drawing::Rectangle rc);
public void Invalidate (System.Drawing.Rectangle rc);
member this.Invalidate : System.Drawing.Rectangle -> unit
Public Sub Invalidate (rc As Rectangle)
매개 변수
설명
메서드를 Invalidate 호출해도 동기 페인트가 강제로 적용되지 않습니다. 동기 페인트를 강제로 적용하려면 메서드를 호출한 Update 후 메서드를 Invalidate 호출합니다. 매개 변수 없이 이 메서드를 호출하면 전체 클라이언트 영역이 업데이트 지역에 추가됩니다.
추가 정보
적용 대상
.NET