Control.Invalidate メソッド

定義

コントロールの特定の領域を無効にし、そのコントロールに描画メッセージを送信します。

オーバーロード

Invalidate(Region, Boolean)

コントロールの指定した領域を無効にし (そのコントロールの次の描画操作で再描画される領域を示す更新領域に追加し)、描画メッセージがそのコントロールに送信されるようにします。 オプションとして、そのコントロールに割り当てられている子コントロールも無効にします。

Invalidate(Rectangle, Boolean)

コントロールの指定した領域を無効にし (そのコントロールの次の描画操作で再描画される領域を示す更新領域に追加し)、描画メッセージがそのコントロールに送信されるようにします。 オプションとして、そのコントロールに割り当てられている子コントロールも無効にします。

Invalidate(Region)

コントロールの指定した領域を無効にし (そのコントロールの次の描画操作で再描画される領域を示す更新領域に追加し)、描画メッセージがそのコントロールに送信されるようにします。

Invalidate(Rectangle)

コントロールの指定した領域を無効にし (そのコントロールの次の描画操作で再描画される領域を示す更新領域に追加し)、描画メッセージがそのコントロールに送信されるようにします。

Invalidate(Boolean)

コントロールの特定の領域を無効にし、そのコントロールに描画メッセージを送信します。 オプションとして、そのコントロールに割り当てられている子コントロールも無効にします。

Invalidate()

コントロールの表面全体を無効化して、コントロールを再描画します。

Invalidate(Region, Boolean)

コントロールの指定した領域を無効にし (そのコントロールの次の描画操作で再描画される領域を示す更新領域に追加し)、描画メッセージがそのコントロールに送信されるようにします。 オプションとして、そのコントロールに割り当てられている子コントロールも無効にします。

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)

パラメーター

region
Region

無効化する Region

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)

パラメーター

rc
Rectangle

無効化する領域を表す Rectangle

invalidateChildren
Boolean

コントロールの子コントロールを無効にする場合は true。それ以外の場合は false

注釈

メソッドを Invalidate 呼び出しても、同期ペイントは強制されません。同期ペイントを強制するには、メソッドの呼び出し後に Update メソッドを Invalidate 呼び出します。 このメソッドがパラメーターなしで呼び出されると、クライアント領域全体が更新領域に追加されます。

こちらもご覧ください

適用対象

Invalidate(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)

パラメーター

region
Region

無効化する Region

注釈

メソッドを 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)

パラメーター

rc
Rectangle

無効化する領域を表す Rectangle

注釈

メソッドを 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 呼び出します。 このメソッドがパラメーターなしで呼び出されると、クライアント領域全体が更新領域に追加されます。

こちらもご覧ください

適用対象