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

  • 相关阅读:
    Linux安全加固
    mosquitto
    Docker设置2375端口
    linux shell 常见的时间戳操作
    tar打包并且排除log目录
    spring boot2整合shiro安全框架实现前后端分离的JWT token登录验证
    http post
    scp命令 Linux和Windows文件互传
    git did not exit cleanly (exit code 1) 的解决办法
    windows安装TortoiseGit详细使用教程【基础篇】
  • 原文地址:https://www.cnblogs.com/HeroBeast/p/1370415.html
Copyright © 2020-2023  润新知