Пример #1
0
        //定义自己的MyMouseLeave事件
        public void MyMouseLeave(object sender, System.EventArgs e)
        {
            m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;

            ((Control)sender).Cursor    = Cursors.Arrow;
            ((Control)sender).BackColor = Color.White;
        }
Пример #2
0
        /// <summary>
        /// 鼠标离开事件需要改进
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MyMouseLeave(object sender, EventArgs e)
        {
            if (doc == null)
            {
                doc = new XmlDocument();
            }

            Control s = (Control)sender;

            XmlNodeList nodes = doc.GetElementsByTagName(s.Name);
            XmlElement  xn;

            if (nodes.Count != 1)
            {
                xn = doc.CreateElement(s.Name);
            }
            else
            {
                xn = (XmlElement)doc.GetElementsByTagName(s.Name)[0];
            }
            xn.SetAttribute("Top", s.Top.ToString());
            xn.SetAttribute("Left", s.Left.ToString());
            xn.SetAttribute("Width", s.Width.ToString());
            xn.SetAttribute("Height", s.Height.ToString());


            XmlNodeList xnl = doc.GetElementsByTagName(this.Name);
            XmlElement  xnp;

            if (xnl.Count < 1)
            {
                xnp = doc.CreateElement(this.Name);
            }
            else
            {
                xnp = (XmlElement)xnl[0];
            }
            xnp.AppendChild(xn);
            doc.AppendChild(xnp);
            doc.Save(xmlDocPath);

            m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
            this.Cursor          = Cursors.Arrow;
            //((Control)sender).BackColor = Color.Transparent;
        }
Пример #3
0
 /*定义自己的MyMouseMove事件,在这个事件里,会使用上面设计的函数*/
 private void MyMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     Control lCtrl = (sender as Control);
     if (e.Button == MouseButtons.Left)
     {
         switch (m_MousePointPosition)
         {
             case EnumMousePointPosition.MouseDrag:
                 lCtrl.Left = lCtrl.Left + e.X - p.X;
                 lCtrl.Top = lCtrl.Top + e.Y - p.Y;
                 /*在数据库里修改一条记录*/
                 string mdconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", mdconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeBottom:
                 lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                 p1.X = e.X;
                 p1.Y = e.Y; //'记录光标拖动的当前点
                 /*在数据库里修改一条记录*/
                 string msbconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", msbconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeBottomRight:
                 lCtrl.Width = lCtrl.Width + e.X - p1.X;
                 lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                 p1.X = e.X;
                 p1.Y = e.Y; //'记录光标拖动的当前点
                 /*在数据库里修改一条记录*/
                 string msbrconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", msbrconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeRight:
                 lCtrl.Width = lCtrl.Width + e.X - p1.X;
                 //       lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                 p1.X = e.X;
                 p1.Y = e.Y; //'记录光标拖动的当前点
                 /*在数据库里修改一条记录*/
                 string msrconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", msrconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeTop:
                 lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
                 lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                 /*在数据库里修改一条记录*/
                 string mstconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", mstconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeLeft:
                 lCtrl.Left = lCtrl.Left + e.X - p.X;
                 lCtrl.Width = lCtrl.Width - (e.X - p.X);
                 /*在数据库里修改一条记录*/
                 string mslconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", mslconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeBottomLeft:
                 lCtrl.Left = lCtrl.Left + e.X - p.X;
                 lCtrl.Width = lCtrl.Width - (e.X - p.X);
                 lCtrl.Height = lCtrl.Height + e.Y - p1.Y; p1.X = e.X;
                 p1.Y = e.Y; //'记录光标拖动的当前点
                 /*在数据库里修改一条记录*/
                 string msblconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", msblconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeTopRight:
                 lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
                 lCtrl.Width = lCtrl.Width + (e.X - p1.X);
                 lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                 p1.X = e.X;
                 p1.Y = e.Y; //'记录光标拖动的当前点
                 /*在数据库里修改一条记录*/
                 string mstrconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", mstrconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             case EnumMousePointPosition.MouseSizeTopLeft:
                 lCtrl.Left = lCtrl.Left + e.X - p.X;
                 lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
                 lCtrl.Width = lCtrl.Width - (e.X - p.X);
                 lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                 /*在数据库里修改一条记录*/
                 string mstlconn = "server=localhost;uid=root;Password=password;database=local;charset=utf8";
                 DBOperateClass.Run_SQL("update video_design_info set Control_Update = '1' where Control_Name = '" + lCtrl.Name + "'", mstlconn);
                 for (int i = 0; i < videoCount; i++)
                 {
                     if (videoPictureBox[i].Name == lCtrl.Name)
                     {
                         videoPropertiesClass[i].X = lCtrl.Location.X.ToString();
                         videoPropertiesClass[i].Y = lCtrl.Location.Y.ToString();
                         videoPropertiesClass[i].Width = lCtrl.Size.Width.ToString();
                         videoPropertiesClass[i].Height = lCtrl.Size.Height.ToString();
                     }
                 }
                 break;
             default:
                 break;
         }
         if (lCtrl.Width < MinWidth) lCtrl.Width = MinWidth;
         if (lCtrl.Height < MinHeight) lCtrl.Height = MinHeight;
     }
     else
     {
         m_MousePointPosition = MousePointPosition(lCtrl.Size, e);   //'判断光标的位置状态
         switch (m_MousePointPosition)   //'改变光标
         {
             case EnumMousePointPosition.MouseSizeNone:
                 this.Cursor = Cursors.Arrow;        //'箭头
                 break;
             case EnumMousePointPosition.MouseDrag:
                 this.Cursor = Cursors.SizeAll;      //'四方向
                 break;
             case EnumMousePointPosition.MouseSizeBottom:
                 this.Cursor = Cursors.SizeNS;       //'南北
                 break;
             case EnumMousePointPosition.MouseSizeTop:
                 this.Cursor = Cursors.SizeNS;       //'南北
                 break;
             case EnumMousePointPosition.MouseSizeLeft:
                 this.Cursor = Cursors.SizeWE;       //'东西
                 break;
             case EnumMousePointPosition.MouseSizeRight:
                 this.Cursor = Cursors.SizeWE;       //'东西
                 break;
             case EnumMousePointPosition.MouseSizeBottomLeft:
                 this.Cursor = Cursors.SizeNESW;     //'东北到南西
                 break;
             case EnumMousePointPosition.MouseSizeBottomRight:
                 this.Cursor = Cursors.SizeNWSE;     //'东南到西北
                 break;
             case EnumMousePointPosition.MouseSizeTopLeft:
                 this.Cursor = Cursors.SizeNWSE;     //'东南到西北
                 break;
             case EnumMousePointPosition.MouseSizeTopRight:
                 this.Cursor = Cursors.SizeNESW;     //'东北到南西
                 break;
             default:
                 break;
         }
     }
 }
Пример #4
0
 /*定义自己的MyMouseLeave事件*/
 private void MyMouseLeave(object sender, System.EventArgs e)
 {
     m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     this.Cursor = Cursors.Arrow;
 }
Пример #5
0
        private void MyMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);

            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                    case EnumMousePointPosition.MouseDrag:
                        lCtrl.Left = lCtrl.Left + e.X - DownPoint.X;
                        break;
                    case EnumMousePointPosition.MouseSizeRight:
                        lCtrl.Width = lCtrl.Width + e.X - CurrPoint.X;
                        CurrPoint.X = e.X;
                        CurrPoint.Y = e.Y; //'记录光标拖动的当前点
                        break;
                    case EnumMousePointPosition.MouseSizeLeft:
                        lCtrl.Left = lCtrl.Left + e.X - DownPoint.X;
                        lCtrl.Width = lCtrl.Width - (e.X - DownPoint.X);
                        break;
                    default:
                        break;
                }
                if (lCtrl.Width < MinWidth) lCtrl.Width = MinWidth;
                if (lCtrl.Width > this.Width) lCtrl.Width = this.Width;
            }
            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e); //'判断光标的位置状态
                switch (m_MousePointPosition) //'改变光标
                {
                    case EnumMousePointPosition.MouseSizeNone:
                        this.Cursor = Cursors.Arrow; //'箭头
                        break;
                    case EnumMousePointPosition.MouseDrag:
                        this.Cursor = Cursors.SizeAll; //'四方向
                        break;
                    case EnumMousePointPosition.MouseSizeLeft:
                        this.Cursor = Cursors.SizeWE; //'东西
                        break;
                    case EnumMousePointPosition.MouseSizeRight:
                        this.Cursor = Cursors.SizeWE; //'东西
                        break;
                    default:
                        break;
                }
            }
        }
Пример #6
0
 void control_MouseLeave(object sender, EventArgs e)
 {
     m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     Cursor.Current = Cursors.Arrow;
 }
Пример #7
0
 //鼠标离开控件的事件
 private void MyMouseLeave(object sender, System.EventArgs e)
 {
     m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     this.Cursor          = Cursors.Arrow;
 }
Пример #8
0
        //鼠标移过控件的事件
        private void MyMouseMove(object sender, MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);//获得事件源

            //左键按下移动
            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseDrag:
                    lCtrl.Left = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Top  = lCtrl.Top + e.Y - m_lastPoint.Y;
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    lCtrl.Width  = lCtrl.Width + e.X - m_endPoint.X;
                    lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    lCtrl.Width  = lCtrl.Width + e.X - m_endPoint.X;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    lCtrl.Top    = lCtrl.Top + (e.Y - m_lastPoint.Y);
                    lCtrl.Height = lCtrl.Height - (e.Y - m_lastPoint.Y);
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    lCtrl.Left  = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Width = lCtrl.Width - (e.X - m_lastPoint.X);
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Width  = lCtrl.Width - (e.X - m_lastPoint.X);
                    lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    lCtrl.Top    = lCtrl.Top + (e.Y - m_lastPoint.Y);
                    lCtrl.Width  = lCtrl.Width + (e.X - m_endPoint.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - m_lastPoint.Y);
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Top    = lCtrl.Top + (e.Y - m_lastPoint.Y);
                    lCtrl.Width  = lCtrl.Width - (e.X - m_lastPoint.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - m_lastPoint.Y);
                    break;

                default:
                    break;
                }
                if (lCtrl.Width < MinWidth)
                {
                    lCtrl.Width = MinWidth;
                }
                if (lCtrl.Height < MinHeight)
                {
                    lCtrl.Height = MinHeight;
                }

                if (lCtrl is PictureBox)
                {
                    var pBox = lCtrl as PictureBox;

                    // PictureBox的实际长宽和坐标
                    var pbw = pBox.Width;
                    var pbh = pBox.Height;
                    var pbx = pBox.Location.X;
                    var pby = pBox.Location.Y;

                    // 计算图片的相对长宽
                    var poh = pBox.Image.Width;
                    var pow = pBox.Image.Height;

                    // 计算图片的实际坐标和长宽
                    PropertyInfo rectangleProperty = pBox.GetType().GetProperty("ImageRectangle", BindingFlags.Instance | BindingFlags.NonPublic);
                    Rectangle    rectangle         = (Rectangle)rectangleProperty.GetValue(pBox, null);
                    // 图片的实际长宽
                    int pw = rectangle.Width;
                    int ph = rectangle.Height;
                    // 计算左和上留白
                    int black_left_width = (pw == pbw) ? 0 : (pbw - pw) / 2;
                    int black_top_height = (ph == pbh) ? 0 : (pbh - ph) / 2;
                    // 图片的实际坐标
                    var px = pbx + black_left_width;
                    var py = pby + black_top_height;

                    // 计算伸缩比
                    var scale = (double)ph / (double)poh;

                    // 同步全局变量
                    _scale = scale;
                    _px    = px;
                    _py    = py;

                    foreach (var item in _shopButtons)
                    {
                        // 计算按钮的原始长宽和坐标(相对图片{x=0,y=0,w=image.w,h=image.h}的像素坐标)
                        var pointList = item.PointList;
                        var box       = pointList.Min(a => a.X);
                        var boy       = pointList.Min(a => a.Y);
                        var bow       = pointList.Max(a => a.X) - box;
                        var boh       = pointList.Max(a => a.Y) - boy;
                        // 计算按钮的实际长宽和坐标(跟随相对图片、伸缩比和原始坐标乘以伸缩比)
                        var bx = (int)(px + box * scale);
                        var by = (int)(py + boy * scale);
                        var bw = (int)(bow * scale);
                        var bh = (int)(boh * scale);

                        // 重绘按钮
                        var button = item.Button;
                        button.Location = new Point(bx, by);
                        button.Size     = new Size(bw, bh);
                        // 重绘文本-按钮的实际长宽
                        bWBox.Text = button.Width.ToString();
                        bHBox.Text = button.Height.ToString();
                        bXBox.Text = button.Location.X.ToString();
                        bYBox.Text = button.Location.Y.ToString();
                        // 重绘文本-按钮的原始长宽
                        bOWBox.Text = bow.ToString();
                        bOHBox.Text = boh.ToString();
                        bOXBox.Text = box.ToString();
                        bOYBox.Text = boy.ToString();
                    }

                    // 重绘文本-PictureBox的实际长宽坐标
                    pbWBox.Text = pBox.Width.ToString();
                    pbHBox.Text = pBox.Height.ToString();
                    pbXBox.Text = pBox.Location.X.ToString();
                    pbYBox.Text = pBox.Location.Y.ToString();

                    // 重绘文本-图片的相对长宽
                    pOWBox.Text = pow.ToString();
                    pOHBox.Text = poh.ToString();
                    // 重绘文本-图片的实际长宽
                    pWBox.Text = pw.ToString();
                    pHBox.Text = ph.ToString();
                    pXBox.Text = px.ToString();
                    pYBox.Text = py.ToString();

                    // 伸缩比
                    scaleBox.Text = scale.ToString();
                }
                if (lCtrl is Button)
                {
                    var button = lCtrl as Button;
                    bWBox.Text = button.Width.ToString();
                    bHBox.Text = button.Height.ToString();
                    bXBox.Text = button.Location.X.ToString();
                    bYBox.Text = button.Location.Y.ToString();

                    var pBox = pictureBox1;

                    // 按钮的实际长宽和坐标
                    var bw = button.Width;
                    var bh = button.Height;
                    var bx = button.Left;
                    var by = button.Top;
                    // 按钮的相对长宽和坐标 通过图片的实际坐标和伸缩比
                    var px    = _px;
                    var py    = _py;
                    var scale = _scale;
                    var bow   = (int)(bw / scale);
                    var boh   = (int)(bh / scale);
                    var box   = (int)(((double)bx - px) / scale);
                    var boy   = (int)(((double)by - py) / scale);
                    var item  = _shopButtons.FirstOrDefault(a => a.Button == button);
                    if (item != null)
                    {
                        item.PointList = new List <PointF> {
                            new PointF {
                                X = box, Y = boy
                            }, new PointF {
                                X = box + bow, Y = boy
                            }, new PointF {
                                X = box + bow, Y = boy + boh
                            }, new PointF {
                                X = box, Y = boy + boh
                            }
                        };
                    }

                    // 重绘文本-按钮的实际长宽
                    bWBox.Text = button.Width.ToString();
                    bHBox.Text = button.Height.ToString();
                    bXBox.Text = button.Location.X.ToString();
                    bYBox.Text = button.Location.Y.ToString();
                    // 重绘文本-按钮的原始长宽
                    bOWBox.Text = bow.ToString();
                    bOHBox.Text = boh.ToString();
                    bOXBox.Text = box.ToString();
                    bOYBox.Text = boy.ToString();
                }
            }
            else
            {
                //判断光标的位置状态
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e);
                switch (m_MousePointPosition)  //改变光标
                {
                case EnumMousePointPosition.MouseSizeNone:
                    this.Cursor = Cursors.Arrow;    //箭头
                    break;

                case EnumMousePointPosition.MouseDrag:
                    this.Cursor = Cursors.SizeAll;    //四方向
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    this.Cursor = Cursors.SizeNS;    //南北
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    this.Cursor = Cursors.SizeNS;    //南北
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    this.Cursor = Cursors.SizeWE;    //东西
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    this.Cursor = Cursors.SizeWE;    //东西
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    this.Cursor = Cursors.SizeNESW;    //东北到南西
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    this.Cursor = Cursors.SizeNWSE;    //东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    this.Cursor = Cursors.SizeNWSE;    //东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    this.Cursor = Cursors.SizeNESW;    //东北到南西
                    break;

                default:
                    break;
                }
            }
        }
Пример #9
0
 public static void MyMouseLeave(System.EventArgs e)
 {
     m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     Cursor.Current       = Cursors.Arrow;
 }
Пример #10
0
        private void MyMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            moveArgs = e;

            #region origin move
            Control lCtrl = (sender as Control);
            if (!(lCtrl is Button))
            {
                return;
            }

            btntag = (ButtonTags)lCtrl.Tag;
            int rowindex = btntag.RowIndex;
            int colindex = btntag.ColIndex;
            int rowmax   = btntag.RowMax;
            int colmax   = btntag.ColMax;

            if (moveArgs.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseSizeBottom:
                    if (rowindex >= rowmax)
                    {
                        return;
                    }
                    if (lCtrl.Height + (moveArgs.Y - p1.Y) <= MinHeight)
                    {
                        return;
                    }
                    if (Buttons[rowindex + 1][colindex].Height - moveArgs.Y + p1.Y <= MinHeight)
                    {
                        return;
                    }

                    foreach (Button btn in Buttons[rowindex])
                    {
                        btn.Height += (moveArgs.Y - p1.Y);

                        btntag = (ButtonTags)btn.Tag;
                        btntag.btnSize.Height = btn.Height;
                        btn.Tag = btntag;
                    }
                    foreach (Button btn in Buttons[rowindex + 1])
                    {
                        //btn.Top += (moveArgs.Y - p1.Y);
                        btn.Height -= (moveArgs.Y - p1.Y);

                        btntag                = (ButtonTags)btn.Tag;
                        btntag.btnLoc.Y       = btn.Top;
                        btntag.btnSize.Height = btn.Height;
                        btn.Tag               = btntag;
                    }
                    this.btnContainer[rowindex].Height += (moveArgs.Y - p1.Y);
                    btnContainer[rowindex + 1].Top     += (moveArgs.Y - p1.Y);
                    btnContainer[rowindex + 1].Height  -= (moveArgs.Y - p1.Y);
                    btnContainer[rowindex + 1].Refresh();
                    btnContainer[rowindex].Refresh();

                    p1.X = moveArgs.X;
                    p1.Y = moveArgs.Y;         //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    if (colindex >= colmax)
                    {
                        return;
                    }
                    if (Buttons[rowindex][colindex + 1].Width - moveArgs.X + p1.X <= MinWidth)
                    {
                        return;
                    }
                    if (lCtrl.Width + moveArgs.X - p1.X <= MinWidth)
                    {
                        return;
                    }

                    lCtrl.Width = lCtrl.Width + moveArgs.X - p1.X;

                    btntag = (ButtonTags)lCtrl.Tag;
                    btntag.btnSize.Width = lCtrl.Width;
                    lCtrl.Tag            = btntag;

                    Buttons[rowindex][colindex + 1].Left  += moveArgs.X - p1.X;
                    Buttons[rowindex][colindex + 1].Width -= moveArgs.X - p1.X;

                    btntag               = (ButtonTags)Buttons[rowindex][colindex + 1].Tag;
                    btntag.btnLoc.X      = Buttons[rowindex][colindex + 1].Left;
                    btntag.btnSize.Width = Buttons[rowindex][colindex + 1].Width;
                    Buttons[rowindex][colindex + 1].Tag = btntag;

                    p1.X = moveArgs.X;
                    p1.Y = moveArgs.Y;         //'记录光标拖动的当前点

                    lCtrl.Refresh();
                    Buttons[rowindex][colindex + 1].Refresh();

                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    if (rowindex <= 0)
                    {
                        return;
                    }
                    if (lCtrl.Height - (moveArgs.Y - p.Y) <= MinHeight)
                    {
                        return;
                    }
                    if (Buttons[rowindex - 1][colindex].Height + moveArgs.Y - p.Y <= MinHeight)
                    {
                        return;
                    }


                    foreach (Button btn in Buttons[rowindex - 1])
                    {
                        btn.Height += (moveArgs.Y - p.Y);

                        btntag = (ButtonTags)btn.Tag;
                        btntag.btnSize.Height = btn.Height;
                        btn.Tag = btntag;
                    }



                    foreach (Button btn in Buttons[rowindex])
                    {
                        //btn.Top += (moveArgs.Y - p.Y);
                        btn.Height -= (moveArgs.Y - p.Y);

                        btntag                = (ButtonTags)btn.Tag;
                        btntag.btnLoc.Y       = btn.Top;
                        btntag.btnSize.Height = btn.Height;
                        btn.Tag               = btntag;
                    }
                    btnContainer[rowindex - 1].Height += (moveArgs.Y - p.Y);
                    btnContainer[rowindex - 1].Refresh();
                    btnContainer[rowindex].Top    += (moveArgs.Y - p.Y);
                    btnContainer[rowindex].Height -= (moveArgs.Y - p.Y);
                    btnContainer[rowindex].Refresh();
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    if (colindex <= 0)
                    {
                        return;
                    }
                    if (Buttons[rowindex][colindex - 1].Width + moveArgs.X - p1.X <= MinWidth)
                    {
                        return;
                    }
                    if (lCtrl.Width - (moveArgs.X - p.X) <= MinWidth)
                    {
                        return;
                    }

                    Buttons[rowindex][colindex - 1].Width += moveArgs.X - p1.X;

                    btntag = (ButtonTags)Buttons[rowindex][colindex - 1].Tag;
                    btntag.btnSize.Width = Buttons[rowindex][colindex - 1].Width;
                    Buttons[rowindex][colindex - 1].Tag = btntag;
                    Buttons[rowindex][colindex - 1].Refresh();

                    lCtrl.Left  = lCtrl.Left + moveArgs.X - p.X;
                    lCtrl.Width = lCtrl.Width - (moveArgs.X - p.X);


                    btntag               = (ButtonTags)lCtrl.Tag;
                    btntag.btnLoc.X      = lCtrl.Left;
                    btntag.btnSize.Width = lCtrl.Width;
                    lCtrl.Tag            = btntag;
                    lCtrl.Refresh();

                    break;

                default:
                    break;
                }
            }

            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e); //'判断光标的位置状态
                switch (m_MousePointPosition)                             //'改变光标
                {
                case EnumMousePointPosition.MouseSizeNone:
                    mainControl.Cursor = Cursors.Arrow;               //'箭头
                    break;

                case EnumMousePointPosition.MouseDrag:
                    mainControl.Cursor = Cursors.Arrow;             //'四方向
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    if (rowindex < rowmax)
                    {
                        mainControl.Cursor = Cursors.SizeNS;              //'南北
                    }
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    if (rowindex > 0)
                    {
                        mainControl.Cursor = Cursors.SizeNS;              //'南北
                    }
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    if (colindex > 0)
                    {
                        mainControl.Cursor = Cursors.SizeWE;              //'东西
                    }
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    if (colindex < colmax)
                    {
                        mainControl.Cursor = Cursors.SizeWE;              //'东西
                    }
                    break;

                default:
                    break;
                }
            }
            #endregion
        }
Пример #11
0
        void control_MouseMove(object sender, MouseEventArgs e)
        {
            Control             lCtrl    = (sender as Control);
            DragControlProperty property = GetControlProperty(lCtrl);

            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseDrag:
                    lCtrl.Left = lCtrl.Left + e.X - property.PositionMovePoint.X;
                    lCtrl.Top  = lCtrl.Top + e.Y - property.PositionMovePoint.Y;
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    lCtrl.Height = lCtrl.Height + e.Y - property.SizeChangeMovePoint.Y;
                    property.SizeChangeMovePoint = e.Location;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    lCtrl.Width  = lCtrl.Width + e.X - property.SizeChangeMovePoint.X;
                    lCtrl.Height = lCtrl.Height + e.Y - property.SizeChangeMovePoint.Y;
                    property.SizeChangeMovePoint = e.Location;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    lCtrl.Width = lCtrl.Width + e.X - property.SizeChangeMovePoint.X;
                    //       lCtrl.Height = lCtrl.Height + e.Y - property.p1.Y;
                    property.SizeChangeMovePoint = e.Location;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    lCtrl.Top    = lCtrl.Top + (e.Y - property.PositionMovePoint.Y);
                    lCtrl.Height = lCtrl.Height - (e.Y - property.PositionMovePoint.Y);
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    lCtrl.Left  = lCtrl.Left + e.X - property.PositionMovePoint.X;
                    lCtrl.Width = lCtrl.Width - (e.X - property.PositionMovePoint.X);
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - property.PositionMovePoint.X;
                    lCtrl.Width  = lCtrl.Width - (e.X - property.PositionMovePoint.X);
                    lCtrl.Height = lCtrl.Height + e.Y - property.SizeChangeMovePoint.Y;
                    property.SizeChangeMovePoint = e.Location;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    lCtrl.Top    = lCtrl.Top + (e.Y - property.PositionMovePoint.Y);
                    lCtrl.Width  = lCtrl.Width + (e.X - property.SizeChangeMovePoint.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - property.PositionMovePoint.Y);
                    property.SizeChangeMovePoint = e.Location;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - property.PositionMovePoint.X;
                    lCtrl.Top    = lCtrl.Top + (e.Y - property.PositionMovePoint.Y);
                    lCtrl.Width  = lCtrl.Width - (e.X - property.PositionMovePoint.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - property.PositionMovePoint.Y);
                    break;

                default:
                    break;
                }
                if (lCtrl.Width < MinWidth)
                {
                    lCtrl.Width = MinWidth;
                }
                if (lCtrl.Height < MinHeight)
                {
                    lCtrl.Height = MinHeight;
                }
            }
            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e); //'判断光标的位置状态
                switch (m_MousePointPosition)                             //'改变光标
                {
                case EnumMousePointPosition.MouseSizeNone:
                    Cursor.Current = Cursors.Arrow;            //'箭头
                    break;

                case EnumMousePointPosition.MouseDrag:
                    Cursor.Current = Cursors.SizeAll;          //'四方向
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    Cursor.Current = Cursors.SizeNS;           //'南北
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    Cursor.Current = Cursors.SizeNS;           //'南北
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    Cursor.Current = Cursors.SizeWE;           //'东西
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    Cursor.Current = Cursors.SizeWE;           //'东西
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    Cursor.Current = Cursors.SizeNESW;         //'东北到南西
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    Cursor.Current = Cursors.SizeNWSE;         //'东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    Cursor.Current = Cursors.SizeNWSE;         //'东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    Cursor.Current = Cursors.SizeNESW;         //'东北到南西
                    break;

                default:
                    break;
                }
            }
        }
Пример #12
0
        public void MyMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);

            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                    case EnumMousePointPosition.MouseDrag:
                        lCtrl.Left = lCtrl.Left + e.X - p.X;
                        lCtrl.Top = lCtrl.Top + e.Y - p.Y;
                        break;
                    case EnumMousePointPosition.MouseSizeBottom:
                        lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                        p1.X = e.X;
                        p1.Y = e.Y; //'记录光标拖动的当前点
                        break;
                    case EnumMousePointPosition.MouseSizeBottomRight:
                        lCtrl.Width = lCtrl.Width + e.X - p1.X;
                        lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                        p1.X = e.X;
                        p1.Y = e.Y; //'记录光标拖动的当前点
                        break;
                    case EnumMousePointPosition.MouseSizeRight:
                        lCtrl.Width = lCtrl.Width + e.X - p1.X;
                        //       lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                        p1.X = e.X;
                        p1.Y = e.Y; //'记录光标拖动的当前点
                        break;
                    case EnumMousePointPosition.MouseSizeTop:
                        lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
                        lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                        break;
                    case EnumMousePointPosition.MouseSizeLeft:
                        lCtrl.Left = lCtrl.Left + e.X - p.X;
                        lCtrl.Width = lCtrl.Width - (e.X - p.X);
                        break;
                    case EnumMousePointPosition.MouseSizeBottomLeft:
                        lCtrl.Left = lCtrl.Left + e.X - p.X;
                        lCtrl.Width = lCtrl.Width - (e.X - p.X);
                        lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                        p1.X = e.X;
                        p1.Y = e.Y; //'记录光标拖动的当前点
                        break;
                    case EnumMousePointPosition.MouseSizeTopRight:
                        lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
                        lCtrl.Width = lCtrl.Width + (e.X - p1.X);
                        lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                        p1.X = e.X;
                        p1.Y = e.Y; //'记录光标拖动的当前点
                        break;
                    case EnumMousePointPosition.MouseSizeTopLeft:
                        lCtrl.Left = lCtrl.Left + e.X - p.X;
                        lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
                        lCtrl.Width = lCtrl.Width - (e.X - p.X);
                        lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                        break;
                    default:
                        break;
                }
                if (lCtrl.Width < MinWidth) lCtrl.Width = MinWidth;
                if (lCtrl.Height < MinHeight) lCtrl.Height = MinHeight;

            }
            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e);   //'判断光标的位置状态
                switch (m_MousePointPosition)   //'改变光标
                {
                    case EnumMousePointPosition.MouseSizeNone:
                        form.Cursor = Cursors.Arrow;        //'箭头
                        break;
                    case EnumMousePointPosition.MouseDrag:
                        form.Cursor = Cursors.SizeAll;      //'四方向
                        break;
                    case EnumMousePointPosition.MouseSizeBottom:
                        form.Cursor = Cursors.SizeNS;       //'南北
                        break;
                    case EnumMousePointPosition.MouseSizeTop:
                        form.Cursor = Cursors.SizeNS;       //'南北
                        break;
                    case EnumMousePointPosition.MouseSizeLeft:
                        form.Cursor = Cursors.SizeWE;       //'东西
                        break;
                    case EnumMousePointPosition.MouseSizeRight:
                        form.Cursor = Cursors.SizeWE;       //'东西
                        break;
                    case EnumMousePointPosition.MouseSizeBottomLeft:
                        form.Cursor = Cursors.SizeNESW;     //'东北到南西
                        break;
                    case EnumMousePointPosition.MouseSizeBottomRight:
                        form.Cursor = Cursors.SizeNWSE;     //'东南到西北
                        break;
                    case EnumMousePointPosition.MouseSizeTopLeft:
                        form.Cursor = Cursors.SizeNWSE;     //'东南到西北
                        break;
                    case EnumMousePointPosition.MouseSizeTopRight:
                        form.Cursor = Cursors.SizeNESW;     //'东北到南西
                        break;
                    default:
                        break;
                }
            }
        }
Пример #13
0
        private void MyMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);

            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseDrag:
                    lCtrl.Left = lCtrl.Left + e.X - DownPoint.X;
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    lCtrl.Width = lCtrl.Width + e.X - CurrPoint.X;
                    CurrPoint.X = e.X;
                    CurrPoint.Y = e.Y;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    lCtrl.Left  = lCtrl.Left + e.X - DownPoint.X;
                    lCtrl.Width = lCtrl.Width - (e.X - DownPoint.X);
                    break;

                default:
                    break;
                }
                if (lCtrl.Width < MinWidth)
                {
                    lCtrl.Width = MinWidth;
                }
                if (lCtrl.Width > this.Width)
                {
                    lCtrl.Width = this.Width;
                }
            }
            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e); //'判断光标的位置状态
                switch (m_MousePointPosition)                             //'改变光标
                {
                case EnumMousePointPosition.MouseSizeNone:
                    this.Cursor = Cursors.Arrow;     //'箭头
                    break;

                case EnumMousePointPosition.MouseDrag:
                    this.Cursor = Cursors.SizeAll;     //'四方向
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    this.Cursor = Cursors.SizeWE;     //'东西
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    this.Cursor = Cursors.SizeWE;     //'东西
                    break;

                default:
                    break;
                }
            }
        }
Пример #14
0
 private void panelEx1_MouseMove(object sender, MouseEventArgs e)
 {
     if (dragingborder)
     {
         if (e.Button != MouseButtons.Left)
         {
             dragingborder = false;
         }
     }
     else
     {
         Point p = Cursor.Position;
         p = new Point(p.X - this.Location.X, p.Y - this.Location.Y);
         if (p.X < 15)
         {
             if (p.Y < 10)
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeNWSE;
                 cursor          = EnumMousePointPosition.MouseSizeTopLeft;
             }
             else if (p.Y + 10 > this.Height)
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeNESW;
                 cursor          = EnumMousePointPosition.MouseSizeBottomLeft;
             }
             else
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeWE;
                 cursor          = EnumMousePointPosition.MouseSizeLeft;
             }
         }
         else if (p.X + 15 > this.Width)
         {
             if (p.Y < 10)
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeNESW;
                 cursor          = EnumMousePointPosition.MouseSizeTopRight;
             }
             else if (p.Y + 10 > this.Height)
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeNWSE;
                 cursor          = EnumMousePointPosition.MouseSizeBottomRight;
             }
             else
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeWE;
                 cursor          = EnumMousePointPosition.MouseSizeRight;
             }
         }
         else
         {
             if (p.Y < 10)
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeNS;
                 cursor          = EnumMousePointPosition.MouseSizeTop;
             }
             else if (p.Y + 10 > this.Height)
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.SizeNS;
                 cursor          = EnumMousePointPosition.MouseSizeBottom;
             }
             else
             {
                 panelEx1.Cursor = System.Windows.Forms.Cursors.Default;
                 cursor          = EnumMousePointPosition.MouseSizeNone;
             }
         }
     }
 }
Пример #15
0
 private void control_MouseLeave(object sender, EventArgs e)
 {
     this.m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     Cursor.Current            = Cursors.Arrow;
 }
Пример #16
0
 private void MyMouseLeave(object sender, EventArgs e)
 {
     m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     control.Cursor       = Cursors.Arrow;
 }
Пример #17
0
        private void control_MouseMove(object sender, MouseEventArgs e)
        {
            Control             control         = sender as Control;
            DragControlProperty controlProperty = this.GetControlProperty(control);

            if (e.Button != MouseButtons.Left)
            {
                this.m_MousePointPosition = this.MousePointPosition(control.Size, e);
                switch (this.m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseSizeNone:
                    Cursor.Current = Cursors.Arrow;
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    Cursor.Current = Cursors.SizeWE;
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    Cursor.Current = Cursors.SizeWE;
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    Cursor.Current = Cursors.SizeNS;
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    Cursor.Current = Cursors.SizeNS;
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    Cursor.Current = Cursors.SizeNWSE;
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    Cursor.Current = Cursors.SizeNESW;
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    Cursor.Current = Cursors.SizeNESW;
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    Cursor.Current = Cursors.SizeNWSE;
                    break;

                case EnumMousePointPosition.MouseDrag:
                    Cursor.Current = Cursors.SizeAll;
                    break;
                }
            }
            else
            {
                switch (this.m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseSizeRight:
                    control.Width = (control.Width + e.X) - controlProperty.SizeChangeMovePoint.X;
                    controlProperty.SizeChangeMovePoint = e.Location;
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    control.Left   = (control.Left + e.X) - controlProperty.PositionMovePoint.X;
                    control.Width -= e.X - controlProperty.PositionMovePoint.X;
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    control.Height = (control.Height + e.Y) - controlProperty.SizeChangeMovePoint.Y;
                    controlProperty.SizeChangeMovePoint = e.Location;
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    control.Top    += e.Y - controlProperty.PositionMovePoint.Y;
                    control.Height -= e.Y - controlProperty.PositionMovePoint.Y;
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    control.Left    = (control.Left + e.X) - controlProperty.PositionMovePoint.X;
                    control.Top    += e.Y - controlProperty.PositionMovePoint.Y;
                    control.Width  -= e.X - controlProperty.PositionMovePoint.X;
                    control.Height -= e.Y - controlProperty.PositionMovePoint.Y;
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    control.Top    += e.Y - controlProperty.PositionMovePoint.Y;
                    control.Width  += e.X - controlProperty.SizeChangeMovePoint.X;
                    control.Height -= e.Y - controlProperty.PositionMovePoint.Y;
                    controlProperty.SizeChangeMovePoint = e.Location;
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    control.Left   = (control.Left + e.X) - controlProperty.PositionMovePoint.X;
                    control.Width -= e.X - controlProperty.PositionMovePoint.X;
                    control.Height = (control.Height + e.Y) - controlProperty.SizeChangeMovePoint.Y;
                    controlProperty.SizeChangeMovePoint = e.Location;
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    control.Width  = (control.Width + e.X) - controlProperty.SizeChangeMovePoint.X;
                    control.Height = (control.Height + e.Y) - controlProperty.SizeChangeMovePoint.Y;
                    controlProperty.SizeChangeMovePoint = e.Location;
                    break;

                case EnumMousePointPosition.MouseDrag:
                    control.Left = (control.Left + e.X) - controlProperty.PositionMovePoint.X;
                    control.Top  = (control.Top + e.Y) - controlProperty.PositionMovePoint.Y;
                    break;
                }
                if (control.Width < 10)
                {
                    control.Width = 10;
                }
                if (control.Height < 10)
                {
                    control.Height = 10;
                }
            }
        }
Пример #18
0
        private void MyMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);

            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseDrag:
                    lCtrl.Left = lCtrl.Left + e.X - p.X;
                    lCtrl.Top  = lCtrl.Top + e.Y - p.Y;
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                    p1.X         = e.X;
                    p1.Y         = e.Y; //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    lCtrl.Width  = lCtrl.Width + e.X - p1.X;
                    lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                    p1.X         = e.X;
                    p1.Y         = e.Y; //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    lCtrl.Width = lCtrl.Width + e.X - p1.X;
                    //       lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                    p1.X = e.X;
                    p1.Y = e.Y;     //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    lCtrl.Top    = lCtrl.Top + (e.Y - p.Y);
                    lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    lCtrl.Left  = lCtrl.Left + e.X - p.X;
                    lCtrl.Width = lCtrl.Width - (e.X - p.X);
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - p.X;
                    lCtrl.Width  = lCtrl.Width - (e.X - p.X);
                    lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
                    p1.X         = e.X;
                    p1.Y         = e.Y; //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    lCtrl.Top    = lCtrl.Top + (e.Y - p.Y);
                    lCtrl.Width  = lCtrl.Width + (e.X - p1.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                    p1.X         = e.X;
                    p1.Y         = e.Y; //'记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - p.X;
                    lCtrl.Top    = lCtrl.Top + (e.Y - p.Y);
                    lCtrl.Width  = lCtrl.Width - (e.X - p.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
                    break;

                default:
                    break;
                }
                if (lCtrl.Width < MinWidth)
                {
                    lCtrl.Width = MinWidth;
                }
                if (lCtrl.Height < MinHeight)
                {
                    lCtrl.Height = MinHeight;
                }
            }
            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e); //'判断光标的位置状态
                switch (m_MousePointPosition)                             //'改变光标
                {
                case EnumMousePointPosition.MouseSizeNone:
                    this.Cursor = Cursors.Arrow;            //'箭头
                    break;

                case EnumMousePointPosition.MouseDrag:
                    this.Cursor = Cursors.SizeAll;          //'四方向
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    this.Cursor = Cursors.SizeNS;           //'南北
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    this.Cursor = Cursors.SizeNS;           //'南北
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    this.Cursor = Cursors.SizeWE;           //'东西
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    this.Cursor = Cursors.SizeWE;           //'东西
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    this.Cursor = Cursors.SizeNESW;         //'东北到南西
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    this.Cursor = Cursors.SizeNWSE;         //'东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    this.Cursor = Cursors.SizeNWSE;         //'东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    this.Cursor = Cursors.SizeNESW;         //'东北到南西
                    break;

                default:
                    break;
                }
            }
        }
Пример #19
0
 private void pictureBox2_MouseLeave(object sender, EventArgs e)
 {
     m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     this.Cursor          = Cursors.Arrow;
 }
Пример #20
0
        //鼠标移过控件的事件
        private void MyMouseMove(object sender, MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);//获得事件源

            //左键按下移动
            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                case EnumMousePointPosition.MouseDrag:
                    lCtrl.Left = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Top  = lCtrl.Top + e.Y - m_lastPoint.Y;
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    lCtrl.Width  = lCtrl.Width + e.X - m_endPoint.X;
                    lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    lCtrl.Width = lCtrl.Width + e.X - m_endPoint.X;
                    //lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    lCtrl.Top    = lCtrl.Top + (e.Y - m_lastPoint.Y);
                    lCtrl.Height = lCtrl.Height - (e.Y - m_lastPoint.Y);
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    lCtrl.Left  = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Width = lCtrl.Width - (e.X - m_lastPoint.X);
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Width  = lCtrl.Width - (e.X - m_lastPoint.X);
                    lCtrl.Height = lCtrl.Height + e.Y - m_endPoint.Y;
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    lCtrl.Top    = lCtrl.Top + (e.Y - m_lastPoint.Y);
                    lCtrl.Width  = lCtrl.Width + (e.X - m_endPoint.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - m_lastPoint.Y);
                    m_endPoint.X = e.X;
                    m_endPoint.Y = e.Y;     //记录光标拖动的当前点
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    lCtrl.Left   = lCtrl.Left + e.X - m_lastPoint.X;
                    lCtrl.Top    = lCtrl.Top + (e.Y - m_lastPoint.Y);
                    lCtrl.Width  = lCtrl.Width - (e.X - m_lastPoint.X);
                    lCtrl.Height = lCtrl.Height - (e.Y - m_lastPoint.Y);
                    break;

                default:
                    break;
                }
                if (lCtrl.Width < MinWidth)
                {
                    lCtrl.Width = MinWidth;
                }
                if (lCtrl.Height < MinHeight)
                {
                    lCtrl.Height = MinHeight;
                }
            }
            else
            {
                //判断光标的位置状态
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e);
                switch (m_MousePointPosition)  //改变光标
                {
                case EnumMousePointPosition.MouseSizeNone:
                    this.Cursor = Cursors.Arrow;    //箭头
                    break;

                case EnumMousePointPosition.MouseDrag:
                    this.Cursor = Cursors.SizeAll;    //四方向
                    break;

                case EnumMousePointPosition.MouseSizeBottom:
                    this.Cursor = Cursors.SizeNS;    //南北
                    break;

                case EnumMousePointPosition.MouseSizeTop:
                    this.Cursor = Cursors.SizeNS;    //南北
                    break;

                case EnumMousePointPosition.MouseSizeLeft:
                    this.Cursor = Cursors.SizeWE;    //东西
                    break;

                case EnumMousePointPosition.MouseSizeRight:
                    this.Cursor = Cursors.SizeWE;    //东西
                    break;

                case EnumMousePointPosition.MouseSizeBottomLeft:
                    this.Cursor = Cursors.SizeNESW;    //东北到南西
                    break;

                case EnumMousePointPosition.MouseSizeBottomRight:
                    this.Cursor = Cursors.SizeNWSE;    //东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopLeft:
                    this.Cursor = Cursors.SizeNWSE;    //东南到西北
                    break;

                case EnumMousePointPosition.MouseSizeTopRight:
                    this.Cursor = Cursors.SizeNESW;    //东北到南西
                    break;

                default:
                    break;
                }
            }
        }
Пример #21
0
        void control_MouseMove(object sender, MouseEventArgs e)
        {
            Control lCtrl = (sender as Control);
            DragControlProperty property = GetControlProperty(lCtrl);

            if (e.Button == MouseButtons.Left)
            {
                switch (m_MousePointPosition)
                {
                    case EnumMousePointPosition.MouseDrag:
                        lCtrl.Left = lCtrl.Left + e.X - property.PositionMovePoint.X;
                        lCtrl.Top = lCtrl.Top + e.Y - property.PositionMovePoint.Y;
                        break;
                    case EnumMousePointPosition.MouseSizeBottom:
                        lCtrl.Height = lCtrl.Height + e.Y - property.SizeChangeMovePoint.Y;
                        property.SizeChangeMovePoint = e.Location; //'记录光标拖动的当前点   
                        break;
                    case EnumMousePointPosition.MouseSizeBottomRight:
                        lCtrl.Width = lCtrl.Width + e.X - property.SizeChangeMovePoint.X;
                        lCtrl.Height = lCtrl.Height + e.Y - property.SizeChangeMovePoint.Y;
                        property.SizeChangeMovePoint = e.Location; //'记录光标拖动的当前点   
                        break;
                    case EnumMousePointPosition.MouseSizeRight:
                        lCtrl.Width = lCtrl.Width + e.X - property.SizeChangeMovePoint.X;
                        //       lCtrl.Height = lCtrl.Height + e.Y - property.p1.Y;   
                        property.SizeChangeMovePoint = e.Location; //'记录光标拖动的当前点   
                        break;
                    case EnumMousePointPosition.MouseSizeTop:
                        lCtrl.Top = lCtrl.Top + (e.Y - property.PositionMovePoint.Y);
                        lCtrl.Height = lCtrl.Height - (e.Y - property.PositionMovePoint.Y);
                        break;
                    case EnumMousePointPosition.MouseSizeLeft:
                        lCtrl.Left = lCtrl.Left + e.X - property.PositionMovePoint.X;
                        lCtrl.Width = lCtrl.Width - (e.X - property.PositionMovePoint.X);
                        break;
                    case EnumMousePointPosition.MouseSizeBottomLeft:
                        lCtrl.Left = lCtrl.Left + e.X - property.PositionMovePoint.X;
                        lCtrl.Width = lCtrl.Width - (e.X - property.PositionMovePoint.X);
                        lCtrl.Height = lCtrl.Height + e.Y - property.SizeChangeMovePoint.Y;
                        property.SizeChangeMovePoint = e.Location; //'记录光标拖动的当前点   
                        break;
                    case EnumMousePointPosition.MouseSizeTopRight:
                        lCtrl.Top = lCtrl.Top + (e.Y - property.PositionMovePoint.Y);
                        lCtrl.Width = lCtrl.Width + (e.X - property.SizeChangeMovePoint.X);
                        lCtrl.Height = lCtrl.Height - (e.Y - property.PositionMovePoint.Y);
                        property.SizeChangeMovePoint = e.Location; //'记录光标拖动的当前点   
                        break;
                    case EnumMousePointPosition.MouseSizeTopLeft:
                        lCtrl.Left = lCtrl.Left + e.X - property.PositionMovePoint.X;
                        lCtrl.Top = lCtrl.Top + (e.Y - property.PositionMovePoint.Y);
                        lCtrl.Width = lCtrl.Width - (e.X - property.PositionMovePoint.X);
                        lCtrl.Height = lCtrl.Height - (e.Y - property.PositionMovePoint.Y);
                        break;
                    default:
                        break;
                }
                if (lCtrl.Width < MinWidth) lCtrl.Width = MinWidth;
                if (lCtrl.Height < MinHeight) lCtrl.Height = MinHeight;
            }
            else
            {
                m_MousePointPosition = MousePointPosition(lCtrl.Size, e);   //'判断光标的位置状态   
                switch (m_MousePointPosition)   //'改变光标   
                {
                    case EnumMousePointPosition.MouseSizeNone:
                        Cursor.Current = Cursors.Arrow;        //'箭头   
                        break;
                    case EnumMousePointPosition.MouseDrag:
                        Cursor.Current = Cursors.SizeAll;      //'四方向   
                        break;
                    case EnumMousePointPosition.MouseSizeBottom:
                        Cursor.Current = Cursors.SizeNS;       //'南北   
                        break;
                    case EnumMousePointPosition.MouseSizeTop:
                        Cursor.Current = Cursors.SizeNS;       //'南北   
                        break;
                    case EnumMousePointPosition.MouseSizeLeft:
                        Cursor.Current = Cursors.SizeWE;       //'东西   
                        break;
                    case EnumMousePointPosition.MouseSizeRight:
                        Cursor.Current = Cursors.SizeWE;       //'东西   
                        break;
                    case EnumMousePointPosition.MouseSizeBottomLeft:
                        Cursor.Current = Cursors.SizeNESW;     //'东北到南西   
                        break;
                    case EnumMousePointPosition.MouseSizeBottomRight:
                        Cursor.Current = Cursors.SizeNWSE;     //'东南到西北   
                        break;
                    case EnumMousePointPosition.MouseSizeTopLeft:
                        Cursor.Current = Cursors.SizeNWSE;     //'东南到西北   
                        break;
                    case EnumMousePointPosition.MouseSizeTopRight:
                        Cursor.Current = Cursors.SizeNESW;     //'东北到南西   
                        break;
                    default:
                        break;
                }
            }

        }