public class HideCaretText : TextBox
    {
        private bool hideCaret = true;

        public bool HideCaretP
        {
            get
            {
                return hideCaret;
            }
            set
            {
                hideCaret = value;
            }
        }

 

        public HideCaretText()
        {
            SetCaret(this);

            this.MouseMove += new MouseEventHandler(MouseHideCaret);
            this.MouseUp += new MouseEventHandler(MouseHideCaret);
            this.MouseDown += new MouseEventHandler(MouseHideCaret);
            this.MouseClick += new MouseEventHandler(MouseHideCaret);
            this.MouseDoubleClick += new MouseEventHandler(MouseHideCaret);
            this.Enter += new System.EventHandler(MouseEnterHideCaret);
        }

        void MouseEnterHideCaret(object sender, EventArgs e)
        {
            SetCaret(sender as TextBox);
        }
       
        void MouseHideCaret(object sender, MouseEventArgs e)
        {
            SetCaret(sender as TextBox);
        }


        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool HideCaret(IntPtr hWnd);
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern bool ShowCaret(IntPtr hWnd);

        void SetCaret(TextBox textbox)
        {
            if (HideCaretP)
            {
                HideCaret(textbox.Handle);
            }
            else
            {
                ShowCaret(textbox.Handle);
            }
        }
    }


本文转载:CSDN博客