WPF TextBox 一些设置技巧
运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-01
参考:
章节:
一、取消输入法
TextBox txbx=new TextBox(); InputMethod.SetIsInputMethodEnabled(txbx, false);//关掉输入法
二、输入方式设定为Overwrite
//把输入改成 overwrite 模式 // fetch TextEditor from myTextBox TextBox txbx=new TextBox(); PropertyInfo textEditorProperty = typeof(TextBox).GetProperty("TextEditor", BindingFlags.NonPublic | BindingFlags.Instance); object textEditor = textEditorProperty.GetValue(txbx, null); // set _OvertypeMode on the TextEditor PropertyInfo overtypeModeProperty = textEditor.GetType().GetProperty("_OvertypeMode", BindingFlags.NonPublic | BindingFlags.Instance); overtypeModeProperty.SetValue(textEditor, true, null);
三、限定输入字符数
在 KeyDown 事件里利用 SelectionStart 来设定,下面例子是限定2个字符
private void TextBox_KeyDown(object sender, KeyEventArgs e) { TextBox txbx = sender as TextBox; //只能有两个字符 if (txbx.SelectionStart < 2) { e.Handled = false;//false才能通过 } else { e.Handled = true; } }