码迷,mamicode.com
首页 > Windows程序 > 详细

C#winform如何实现文本编辑框(TextBox)的Hint提示文字效果

时间:2019-12-23 22:14:05      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:message   style   als   code   private   hint   mdk   事件   windows   


技术图片


C#winform如何实现文本编辑框(TextBox)的Hint提示文字效果
        private const int EM_SETCUEBANNER = 0x1501;
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, string lParam);
        private string hint = string.Empty;
        public string Hint
        {
            get { return hint; }
            set
            {
                hint = value;
                SendMessage(textBox1.Handle, EM_SETCUEBANNER, (int)IntPtr.Zero, Hint);
            }
        }
那如何实现 按 CTRL+Q 自动把光标定位到当前文本框呢
当前了你可以使用KeyDown事件,如果界面上有100个控件那么所有的控件全部关联这个KEYDOWN事件,如果你不烦的话。

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.Q)
            {
                textBox1.Focus();

            }
        }

最明智的办法是使用下面的方法重写,这样不论光标焦点在哪个控件上只要按下CTRL+Q 光标就定位到当前这个文本中了
    //重写ProcessCmdKey的方法
        protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
        {
            int WM_KEYDOWN = 256;
            int WM_SYSKEYDOWN = 260;
            if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
            {
                switch (keyData)
                {
                    case Keys.Control|Keys.Q:
                        textBox1.Focus();
                        break;
                }
            }
            return false;
        }

C#winform如何实现文本编辑框(TextBox)的Hint提示文字效果

标签:message   style   als   code   private   hint   mdk   事件   windows   

原文地址:https://www.cnblogs.com/xe2011/p/12088411.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!