public override Point PointToScreen(Point pt) => _owningTextBoxBase.PointToScreen(pt);
Exemplo n.º 2
0
        private void SetAutoCompleteLocation(TextBoxBase control, bool moveHorizontly)
        {
            Point cursorLocation = control.GetPositionFromCharIndex(control.SelectionStart);
            Screen screen = Screen.FromPoint(cursorLocation);
            Point optimalLocation = new Point(control.PointToScreen(cursorLocation).X - 15, (int)(control.PointToScreen(cursorLocation).Y + Font.Size * 2 + 2));
            Rectangle desiredPlace = new Rectangle(optimalLocation, this.Size);
            desiredPlace.Width = 152;

            if (desiredPlace.Left < screen.Bounds.Left)
            {
                desiredPlace.X = screen.Bounds.Left;
            }
            if (desiredPlace.Right > screen.Bounds.Right)
            {
                desiredPlace.X -= (desiredPlace.Right - screen.Bounds.Right);
            }
            if (desiredPlace.Bottom > screen.Bounds.Bottom)
            {
                desiredPlace.Y = cursorLocation.Y - 2 - desiredPlace.Height;
            }
            if (!moveHorizontly)
            {
                desiredPlace.X = this.Left;
            }

            this.Bounds = desiredPlace;
        }