Control.Invalidate Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Делает недействительной конкретную область элемента управления и вызывает отправку сообщения рисования элементу управления.
Перегрузки
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 метода . При вызове этого метода без параметров в регион обновления добавляется вся клиентская область.