zoukankan      html  css  js  c++  java
  • c#中拖动图片的例子

    这个问题来自论坛提问,并没有什么难度,也不需要重画内容。当然还有一种方法是通过api发送WM_SysCommand 和SC_MOVE,也就是拖动无标题窗体的方法 ,但是效果没有这个好。

    using  System;
    using  System.Drawing;
    using  System.Windows.Forms;
    namespace  WindowsApplication2
    {
        
    public   partial   class  Form1 : Form
        
    {
            
    static   string  strDown  =   @" AAACAAEAICAAAAsACQAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAIAAAAA
                           AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                           AAAAAAAAAAf4AAAD8AAAA/AAAAPwAAAH+AAAD/gAAB/8AAA//AAAN/wAACf+AAAH
                           9gAADbQAAA2wAAAJsAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                           AAAAAAAA////////////////////////////////////////////8AP///gH///4
                           B///+Af///AD///gA///wAH//4AB//+AAf//gAD//4AA///AAP//4AH//+AH///g
                           D////j////////////////////////////////////////////8=
    " ;
            
    static   string  strUp  =   @" AAACAAEAICAAAAoACAAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAIAAA
                            AAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                            AAAAAAAAAAAAAf4AAAD8AAAA/AAAAPwAAAH+AAAD/gAAB/8AAA//AAAd/wAAGf+
                            AAAH9gAADbYAAA2yAAAZsAAAGbAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                            AAAAAAAAAAAAA////////////////////////////////////////////8AP///
                            gH///4B///+Af///AD///gA///wAH//4AB//8AAf//AAD//4AA///gAP//4AD//
                            8AF///AB///5A////5///////////////////////////////////////8=
    " ;

            Cursor curUp 
    =   new  Cursor( new  System.IO.MemoryStream(Convert.FromBase64String(strUp)));
            Cursor curDown 
    =   new  Cursor( new  System.IO.MemoryStream(Convert.FromBase64String(strDown)));
            
    public  Form1()
            
    {
                InitializeComponent();
                
    this .pictureBox1.Cursor  =  curUp;
            }


            
    bool  bDragging  =   false ;
            Point pClicked;

            
    private   void  pictureBox1_MouseDown( object  sender, MouseEventArgs e)
            
    {

                bDragging 
    =   true ;
                pClicked 
    =   new  Point(e.X, e.Y);
                
    this .pictureBox1.Cursor  =  curDown;
            }


            
    private   void  pictureBox1_MouseMove( object  sender, MouseEventArgs e)
            
    {
                
    if  (bDragging)
                
    {
                    Point oMoveToPoint;
                    oMoveToPoint 
    =   this .PointToClient(pictureBox1.PointToScreen( new  Point(e.X, e.Y)));
                    oMoveToPoint.Offset(pClicked.X 
    *   - 1 , pClicked.Y  *   - 1 );
                    pictureBox1.Location 
    =  oMoveToPoint;
                }

            }

            
    private   void  pictureBox1_MouseUp( object  sender, MouseEventArgs e)
            
    {
                bDragging 
    =   false ;
                
    this .pictureBox1.Cursor  =  curUp;
            }

        }

    }
     
  • 相关阅读:
    SD_WebImage-03-多线程+下载任务放入非主线程执行
    NSOperationQueue_管理NSOperation-02-多线程
    CALayer小结-基本使用00-UI进阶
    XMPP-UI进阶-01
    XMPP总结-UI进阶-00
    UI控件总结-UI初级
    转场动画-01-day4
    暂停-开始动画-核心动画-08-day4
    核心动画-04-CALayer隐式动画
    Android开发技术周报 Issue#71
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204957.html
Copyright © 2011-2022 走看看