Control.Invalidate 方法

定义

使控件的特定区域无效并向控件发送绘制消息。

重载

Invalidate(Region, Boolean)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。 还可以使分配给该控件的子控件无效。

Invalidate(Rectangle, Boolean)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。 还可以使分配给该控件的子控件无效。

Invalidate(Region)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。

Invalidate(Boolean)

使控件的特定区域无效并向控件发送绘制消息。 还可以使分配给该控件的子控件无效。

Invalidate()

使控件的整个图面无效并导致重绘控件。

Invalidate(Rectangle)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。

Invalidate(Region, Boolean)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。 还可以使分配给该控件的子控件无效。

C#
public void Invalidate (System.Drawing.Region region, bool invalidateChildren);
C#
public void Invalidate (System.Drawing.Region? region, bool invalidateChildren);

参数

region
Region

要使之无效的 Region

invalidateChildren
Boolean

若要使控件的子控件无效,则为 true;否则为 false

注解

Invalidate调用 方法不强制同步绘制;若要强制同步绘制,请在Update调用 Invalidate 方法后调用 方法。 在没有参数的情况下调用此方法时,会将整个工作区添加到更新区域。

另请参阅

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invalidate(Rectangle, Boolean)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。 还可以使分配给该控件的子控件无效。

C#
public void Invalidate (System.Drawing.Rectangle rc, bool invalidateChildren);

参数

rc
Rectangle

一个 Rectangle,表示要使之无效的区域。

invalidateChildren
Boolean

若要使控件的子控件无效,则为 true;否则为 false

注解

Invalidate调用 方法不强制同步绘制;若要强制同步绘制,请在Update调用 Invalidate 方法后调用 方法。 在没有参数的情况下调用此方法时,会将整个工作区添加到更新区域。

另请参阅

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invalidate(Region)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。

C#
public void Invalidate (System.Drawing.Region region);
C#
public void Invalidate (System.Drawing.Region? region);

参数

region
Region

要使之无效的 Region

注解

Invalidate调用 方法不强制同步绘制;若要强制同步绘制,请在Update调用 Invalidate 方法后调用 方法。 在没有参数的情况下调用此方法时,会将整个工作区添加到更新区域。

另请参阅

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invalidate(Boolean)

使控件的特定区域无效并向控件发送绘制消息。 还可以使分配给该控件的子控件无效。

C#
public void Invalidate (bool invalidateChildren);

参数

invalidateChildren
Boolean

若要使控件的子控件无效,则为 true;否则为 false

注解

Invalidate调用 方法不强制同步绘制;若要强制同步绘制,请在Update调用 Invalidate 方法后调用 方法。 在没有参数的情况下调用此方法时,会将整个工作区添加到更新区域。

另请参阅

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invalidate()

使控件的整个图面无效并导致重绘控件。

C#
public void Invalidate ();

示例

下面的代码示例使用户能够将图像或图像文件拖到窗体上,并在删除时将其显示。 OnPaint将重写 方法以在每次绘制窗体时重新绘制图像;否则,图像将仅保留到下一次重新绘制。 事件 DragEnter 处理方法确定要拖动到窗体中的数据类型,并提供适当的反馈。 如果可以从数据创建 ,ImageDragDrop事件处理方法会在窗体上显示图像。 DragEventArgs.X由于 和 DragEventArgs.Y 值是屏幕坐标,因此该示例使用 PointToClient 方法将它们转换为客户端坐标。

C#
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;
   }
}

注解

Invalidate调用 方法不强制同步绘制;若要强制同步绘制,请在Update调用 Invalidate 方法后调用 方法。 在没有参数的情况下调用此方法时,会将整个工作区添加到更新区域。

另请参阅

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Invalidate(Rectangle)

使控件的指定区域无效(将其添加到控件的更新区域,下次绘制操作时将重新绘制更新区域),并向控件发送绘制消息。

C#
public void Invalidate (System.Drawing.Rectangle rc);

参数

rc
Rectangle

一个 Rectangle,表示要使之无效的区域。

注解

Invalidate调用 方法不强制同步绘制;若要强制同步绘制,请在Update调用 Invalidate 方法后调用 方法。 在没有参数的情况下调用此方法时,会将整个工作区添加到更新区域。

另请参阅

适用于

.NET Framework 4.8.1 和其他版本
产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9