Esempio n. 1
0
        // parameters:
        //      x   内部坐标
        HitTestResult HitTest(float x, float y)
        {
            HitTestResult result = new HitTestResult();

            result.X          = x;
            result.Y          = y;
            result.CornerType = CornerType.None;

            if (this.Image == null)
            {
                return(result);
            }

            Rectangle display_rect = GetPictureBoxZoomSize();
            float     x_ratio      = (float)display_rect.Width / (float)this.Image.Width;
            float     scale_ratio  = (float)1 / x_ratio;

            // 左上
            RectangleF rect = GetBoxRect(_points[0], scale_ratio);

            if (GuiUtil.PtInRect(x,
                                 y,
                                 rect) == true)
            {
                result.CornerType = CornerType.LeftTop;
                return(result);
            }

            // 右上
            rect = GetBoxRect(_points[1], scale_ratio);
            if (GuiUtil.PtInRect(x,
                                 y,
                                 rect) == true)
            {
                result.CornerType = CornerType.RightTop;
                return(result);
            }

            // 右下
            rect = GetBoxRect(_points[2], scale_ratio);
            if (GuiUtil.PtInRect(x,
                                 y,
                                 rect) == true)
            {
                result.CornerType = CornerType.RightBottom;
                return(result);
            }

            // 左下
            rect = GetBoxRect(_points[3], scale_ratio);
            if (GuiUtil.PtInRect(x,
                                 y,
                                 rect) == true)
            {
                result.CornerType = CornerType.LeftBottom;
                return(result);
            }

            return(result);
        }
Esempio n. 2
0
 private void CheckedComboBox_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Left &&
         this.textBox_text.Enabled == true)
     {
         if (GuiUtil.PtInRect(e.X, e.Y, this.RectButton) == true)
         {
             button_dropDownList_MouseDown(sender, e);
         }
     }
 }
Esempio n. 3
0
 private void DateControl_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == System.Windows.Forms.MouseButtons.Left &&
         this.maskedTextBox_date.Enabled == true)
     {
         if (GuiUtil.PtInRect(e.X, e.Y, this.RectButton) == true)
         {
             button_findDate_Click(sender, e);
         }
     }
 }
Esempio n. 4
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            if (GuiUtil.PtInRect(e.X, e.Y, this.ClientRectangle) == false)
            {
                // 防止在卷滚条上单击后拖动造成副作用
                goto END1;
            }

            this.Capture = true;

            this.Focus();

            // Graphics g = Graphics.FromHwnd(this.Handle);
            // g.TransformPoints(System.Drawing.Drawing2D.CoordinateSpace.Page, System.Drawing.Drawing2D.CoordinateSpace.World, pts);
            PointF p1 = ScreenToPhysic(new Point(e.X, e.Y));

            // 屏幕坐标
            _startHit = this.HitTest(
                p1.X,
                p1.Y);

END1:
            base.OnMouseDown(e);
        }
Esempio n. 5
0
 bool IsMouseOnCancelButton()
 {
     return(GuiUtil.PtInRect(Control.MousePosition.X,
                             Control.MousePosition.Y,
                             this.RectangleToScreen(this.button_Cancel.Bounds)));
 }