zoukankan      html  css  js  c++  java
  • C#中Invalidate() 方法

    Control.Invalidate 方法

     

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

    重载列表

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

    受 .NET Framework 精简版的支持。

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

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

    [C#] public void Invalidate(bool);

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

    受 .NET Framework 精简版的支持。

    [C#] public void Invalidate(Rectangle);

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

    [C#] public void Invalidate(Region);

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

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

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

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

    示例

    [Visual Basic, C#, C++] 下面的示例使用户能够将图像或图像文件拖到窗体上,并使它在放置点显示。每次绘制窗体时,都重写 OnPaint 方法以重新绘制图像;否则图像将保持到下一次重新绘制。DragEnter 事件处理方法决定拖到窗体中的数据的类型,并提供适当的反馈。如果 Image 可以从该数据中创建,则 DragDrop 事件处理方法就会在该窗体上显示此图像。因为 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;
       }
    }
  • 相关阅读:
    C语言寒假大作战01
    C语言|博客作业12-学期总结
    第一次作业
    C语言|博客作业11
    C语言|博客作业10
    Centos7上安装 sqlmap 所经历的坑
    软件工程1916|W(福州大学)_助教博客】助教总结
    软件工程1916|W(福州大学)_助教博客】个人总结作业(第12次)成绩公示
    团队作业第五次(第8次)—项目系统设计与数据库设计成绩排名
    需求分析课堂答辩问题汇总
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2645946.html
Copyright © 2011-2022 走看看