日期:2014-05-17  浏览次数:21482 次

怎么隐藏C#中textBox控件的光标
using System.Runtime.InteropServices;
……
[DllImport("user32", EntryPoint = "HideCaret")]
private static extern bool HideCaret(IntPtr hWnd);
……
在TextBox的MouseDown事件中添入:
HideCaret(((TextBox)sender).Handle);


告诉我这个方法的请教我添加在哪里(当然有更好的方法更好),谢谢了,第一次做C#,新手,感谢大家,明早来给分……

------解决方案--------------------
楼上gxingmin正解!
------解决方案--------------------
在ui设计画面,选中你这个textbox,查看属性,切换到事件页,找到MouseDown事件和GotFocus事件,每一个双记下,在自动追加的方法里添加HideCaret((sender as TextBox).Handle);
自动追加的两个方法名一般就叫

void textBox1_GotFocus(object sender, EventArgs e)
        {
            HideCaret((sender as TextBox).Handle);
        }
 
        private void textBox1_MouseDown(object sender, MouseEventArgs e)
        {
            HideCaret((sender as TextBox).Handle);
        }

------解决方案--------------------
选中。去看属性。。。别双击它。。右键点击选择属性。。。。。。
------解决方案--------------------
HideCaret不是你声明的api函数吗?非得给你一字不差的写下来?

  
[DllImport("user32", EntryPoint = "HideCaret")]
        private static extern bool HideCaret(IntPtr hWnd);

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.GotFocus += textBox1_GotFocus;
            textBox1.MouseDown += textBox1_MouseDown;
        }

        void textBox1_GotFocus(object sender, EventArgs e)
        {
            HideCaret((sender as TextBox).Handle);
        }

        void textBox1_MouseDown(object sender, MouseEventArgs e)
        {
            HideCaret((sender as TextBox).Handle);
        }