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

  • 相关阅读:
    利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API
    Dynamics CRM中的操作(action)是否是一个事务(transaction)?
    Dynamics CRM 2015/2016新特性之三十二:新增乐观并发处理
    Dynamics CRM 2015/2016新特性之三十三:有了ExecuteTransactionRequest,再也不用担心部分成功部分失败了
    提权案例(一)渗透某asp.net网站通过sql server数据库public 提权 思路分享
    windows 抓hash获取管理员密码
    第三方应用 flashfxp,filezilla提权
    第三方软件 G6ftp提权
    第三方软件 vnc提权
    第三方软件 radmin提权
  • 原文地址:https://www.cnblogs.com/HeroBeast/p/1370415.html
Copyright © 2020-2023  润新知