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



    clipboard


    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;
            }
    
    
  • 相关阅读:
    2.(两个单链表 加法运算)ADD TWO Numbers
    1.从一串数字中找到相加等于target的两个数。TWO SUM
    idea自动注入和自动编译
    idea安装plugin
    idea刷新项目、清除项目缓存
    idea配置jdk
    负载均衡,会话保持,session同步(转)
    【Spring源码分析】Bean加载流程概览
    Maven使用--基本入门
    Git使用:
  • 原文地址:https://www.cnblogs.com/xe2011/p/12088411.html
Copyright © 2020-2023  润新知