次の方法で共有


Control.Invalidate メソッド

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

オーバーロードの一覧

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

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Sub Invalidate()

[C#] public void Invalidate();

[C++] public: void Invalidate();

[JScript] public function Invalidate();

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

[Visual Basic] Overloads Public Sub Invalidate(Boolean)

[C#] public void Invalidate(bool);

[C++] public: void Invalidate(bool);

[JScript] public function Invalidate(Boolean);

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

.NET Compact Framework でもサポート。

[Visual Basic] Overloads Public Sub Invalidate(Rectangle)

[C#] public void Invalidate(Rectangle);

[C++] public: void Invalidate(Rectangle);

[JScript] public function Invalidate(Rectangle);

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

[Visual Basic] Overloads Public Sub Invalidate(Region)

[C#] public void Invalidate(Region);

[C++] public: void Invalidate(Region*);

[JScript] public function Invalidate(Region);

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

[Visual Basic] Overloads Public Sub Invalidate(Rectangle, Boolean)

[C#] public void Invalidate(Rectangle, bool);

[C++] public: void Invalidate(Rectangle, bool);

[JScript] public function Invalidate(Rectangle, Boolean);

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

[Visual Basic] Overloads Public Sub Invalidate(Region, Boolean)

[C#] public void Invalidate(Region, bool);

[C++] public: void Invalidate(Region*, bool);

[JScript] public function Invalidate(Region, Boolean);

使用例

[Visual Basic, C#, C++] ユーザーがイメージまたはイメージ ファイルをフォームにドラッグできるようにし、ドロップされた場所にそのイメージを表示する例を次に示します。 OnPaint メソッドは、フォームが描画されるたびにイメージを再描画するためオーバーライドされます。されない場合、イメージは次回の再描画までそのままの状態で残ります。 DragEnter イベント処理メソッドでは、フォームにドラッグされているデータの種類を判別し、適切なフィードバックを提供します。 DragDrop イベント処理メソッドでは、 Image をデータから作成できる場合に、フォーム上にイメージを表示します。 DragEventArgs.X および DragEventArgs.Y の値は画面座標であるため、この例では PointToClient メソッドを使用して値をクライアント座標に変換しています。

[Visual Basic, C#, C++] メモ   ここでは、Invalidate のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
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 Not (Me.picture Is 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

[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;
   }
}

[C++] 
private:
   Image*  picture;
   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::Form1_DragDrop);
      this->DragEnter += new DragEventHandler(this, &Form1::Form1_DragEnter);
   }

protected:
   void OnPaint(PaintEventArgs* e) {
      // If there is an image and it has a location,
      // paint it when the Form is repainted.
      Form::OnPaint(e);
      if (this->picture != 0 && 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( 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;
         }
   }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

Control クラス | Control メンバ | System.Windows.Forms 名前空間