标签: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