zoukankan      html  css  js  c++  java
  • C# 毕业证书打印《五》

    对鼠标操作Label的方法

      1  #region
      2         //定义一个枚举类型,描述光标状态
      3         private enum EnumMousePointPosition
      4         {
      5             #region
      6             MouseSizeNone = 0, //'无
      7             MouseSizeRight = 1, //'拉伸右边框
      8             MouseSizeLeft = 2, //'拉伸左边框
      9             MouseSizeBottom = 3, //'拉伸下边框
     10             MouseSizeTop = 4, //'拉伸上边框
     11             MouseSizeTopLeft = 5, //'拉伸左上角
     12             MouseSizeTopRight = 6, //'拉伸右上角
     13             MouseSizeBottomLeft = 7, //'拉伸左下角
     14             MouseSizeBottomRight = 8, //'拉伸右下角
     15             MouseDrag = 9 // '鼠标拖动
     16             #endregion
     17         }
     18         //定义自己的MyMouseDown事件
     19         private void MyMouseDown(object sender, MouseEventArgs e)
     20         {
     21             p.X = e.X;
     22             p.Y = e.Y;
     23             p1.X = e.X;
     24             p1.Y = e.Y;
     25         }
     26         //定义自己的MyMouseLeave事件
     27         private void MyMouseLeave(object sender, EventArgs e)
     28         {
     29             m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
     30             this.Cursor = Cursors.Arrow;
     31         }
     32         //设计一个函数,确定光标在不同位置的样式
     33         private EnumMousePointPosition MousePointPosition(Size size, MouseEventArgs e)
     34         {
     35             if ((e.X >= -1 * Band) | (e.X <= size.Width) | (e.Y >= -1 * Band) | (e.Y <= size.Height))
     36             {
     37                 if (e.X < Band)
     38                 {
     39                     if (e.Y < Band) { return EnumMousePointPosition.MouseSizeTopLeft; }
     40                     else
     41                     {
     42                         if (e.Y > -1 * Band + size.Height)
     43                         { return EnumMousePointPosition.MouseSizeBottomLeft; }
     44                         else
     45                         { return EnumMousePointPosition.MouseSizeLeft; }
     46                     }
     47                 }
     48                 else
     49                 {
     50                     if (e.X > -1 * Band + size.Width)
     51                     {
     52                         if (e.Y < Band)
     53                         { return EnumMousePointPosition.MouseSizeTopRight; }
     54                         else
     55                         {
     56                             if (e.Y > -1 * Band + size.Height)
     57                             { return EnumMousePointPosition.MouseSizeBottomRight; }
     58                             else
     59                             { return EnumMousePointPosition.MouseSizeRight; }
     60                         }
     61                     }
     62                     else
     63                     {
     64                         if (e.Y < Band)
     65                         { return EnumMousePointPosition.MouseSizeTop; }
     66                         else
     67                         {
     68                             if (e.Y > -1 * Band + size.Height)
     69                             { return EnumMousePointPosition.MouseSizeBottom; }
     70                             else
     71                             { return EnumMousePointPosition.MouseDrag; }
     72                         }
     73                     }
     74                 }
     75             }
     76             else
     77             { return EnumMousePointPosition.MouseSizeNone; }
     78         }
     79 
     80         //定义自己的MyMouseMove事件,并使用上面定义的函数
     81         private void MyMouseMove(object sender, MouseEventArgs e)
     82         {
     83             Control lCtrl = (sender as Control);
     84             if (e.Button == MouseButtons.Left)
     85             {
     86                 switch (m_MousePointPosition)
     87                 {
     88                     //鼠标拖动
     89                     case EnumMousePointPosition.MouseDrag:
     90                         lCtrl.Left = lCtrl.Left + e.X - p.X;
     91                         lCtrl.Top = lCtrl.Top + e.Y - p.Y;
     92                         break;
     93                     //拉伸下边框
     94                     case EnumMousePointPosition.MouseSizeBottom:
     95                         lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
     96                         p1.X = e.X;
     97                         p1.Y = e.Y; //'记录光标拖动的当前点
     98                         break;
     99                     //拉伸左下角
    100                     case EnumMousePointPosition.MouseSizeBottomRight:
    101                         lCtrl.Width = lCtrl.Width + e.X - p1.X;
    102                         lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
    103                         p1.X = e.X;
    104                         p1.Y = e.Y; //'记录光标拖动的当前点
    105                         break;
    106                     //拉伸又边框
    107                     case EnumMousePointPosition.MouseSizeRight:
    108                         lCtrl.Width = lCtrl.Width + e.X - p1.X;
    109                         //   lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
    110                         p1.X = e.X;
    111                         p1.Y = e.Y; //'记录光标拖动的当前点
    112                         break;
    113                     //拉伸上边框
    114                     case EnumMousePointPosition.MouseSizeTop:
    115                         lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
    116                         lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
    117                         break;
    118                     //拉伸左边框
    119                     case EnumMousePointPosition.MouseSizeLeft:
    120                         lCtrl.Left = lCtrl.Left + e.X - p.X;
    121                         lCtrl.Width = lCtrl.Width - (e.X - p.X);
    122                         break;
    123                     //拉伸左下角
    124                     case EnumMousePointPosition.MouseSizeBottomLeft:
    125                         lCtrl.Left = lCtrl.Left + e.X - p.X;
    126                         lCtrl.Width = lCtrl.Width - (e.X - p.X);
    127                         lCtrl.Height = lCtrl.Height + e.Y - p1.Y;
    128                         p1.X = e.X;
    129                         p1.Y = e.Y; //'记录光标拖动的当前点
    130                         break;
    131                     //拉伸右上角
    132                     case EnumMousePointPosition.MouseSizeTopRight:
    133                         lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
    134                         lCtrl.Width = lCtrl.Width + (e.X - p1.X);
    135                         lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
    136                         p1.X = e.X;
    137                         p1.Y = e.Y; //'记录光标拖动的当前点
    138                         break;
    139                     //拉伸左上角
    140                     case EnumMousePointPosition.MouseSizeTopLeft:
    141                         lCtrl.Left = lCtrl.Left + e.X - p.X;
    142                         lCtrl.Top = lCtrl.Top + (e.Y - p.Y);
    143                         lCtrl.Width = lCtrl.Width - (e.X - p.X);
    144                         lCtrl.Height = lCtrl.Height - (e.Y - p.Y);
    145                         break;
    146 
    147                     default:
    148                         break;
    149                 }
    150                 if (lCtrl.Width < MinWidth) lCtrl.Width = MinWidth;
    151                 if (lCtrl.Height < MinHeight) lCtrl.Height = MinHeight;
    152             }
    153 
    154             else
    155             {
    156                 m_MousePointPosition = MousePointPosition(lCtrl.Size, e); //'判断光标的位置状态
    157                 switch (m_MousePointPosition) //'改变光标
    158                 {
    159                     case EnumMousePointPosition.MouseSizeNone:
    160                         this.Cursor = Cursors.Arrow;       //'箭头
    161                         break;
    162 
    163                     case EnumMousePointPosition.MouseDrag:
    164                         this.Cursor = Cursors.SizeAll;     //'四方向
    165                         break;
    166 
    167                     case EnumMousePointPosition.MouseSizeBottom:
    168                         this.Cursor = Cursors.SizeNS;      //'南北
    169                         break;
    170 
    171                     case EnumMousePointPosition.MouseSizeTop:
    172                         this.Cursor = Cursors.SizeNS;      //'南北
    173                         break;
    174 
    175                     case EnumMousePointPosition.MouseSizeLeft:
    176                         this.Cursor = Cursors.SizeWE;      //'东西
    177                         break;
    178 
    179                     case EnumMousePointPosition.MouseSizeRight:
    180                         this.Cursor = Cursors.SizeWE;      //'东西
    181                         break;
    182 
    183                     case EnumMousePointPosition.MouseSizeBottomLeft:
    184                         this.Cursor = Cursors.SizeNESW;    //'东北到南西
    185                         break;
    186 
    187                     case EnumMousePointPosition.MouseSizeBottomRight:
    188                         this.Cursor = Cursors.SizeNWSE;    //'东南到西北
    189                         break;
    190 
    191                     case EnumMousePointPosition.MouseSizeTopLeft:
    192                         this.Cursor = Cursors.SizeNWSE;    //'东南到西北
    193                         break;
    194 
    195                     case EnumMousePointPosition.MouseSizeTopRight:
    196                         this.Cursor = Cursors.SizeNESW;    //'东北到南西
    197                         break;
    198 
    199                     default:
    200                         break;
    201 
    202                 }
    203             }
    204         }
    205         #endregion  定义鼠标事件
    206         //将界面panel1上的所有控件都绑定MyMouseDown、MyMouseLeave、MyMouseMove事件,记得在Form初始化或者Form_Load时先执行它
    207         private void initProperty()
    208         {
    209             for (int i = 0; i < this.panel1.Controls.Count; i++)
    210             {
    211                 this.panel1.Controls[i].MouseDown += new System.Windows.Forms.MouseEventHandler(MyMouseDown);
    212                 this.panel1.Controls[i].MouseLeave += new System.EventHandler(MyMouseLeave);
    213                 this.panel1.Controls[i].MouseMove += new System.Windows.Forms.MouseEventHandler(MyMouseMove);
    214             }
    215         }
  • 相关阅读:
    strpos与strstr之间的区别
    jquery 滚动效果插件
    自定义加密解密函数
    access变转换为mysql表工具
    CI学习总结
    表单验证
    解决国外模板h1、h2、h3...不显示中文文章标题的问题
    leetcode Largest Rectangle in Histogram
    leetcode Remove Duplicates from Sorted List
    leetcode[82] Remove Duplicates from Sorted List II
  • 原文地址:https://www.cnblogs.com/bindot/p/zsdy5.html
Copyright © 2011-2022 走看看