Когда MouseDoubleClick
в текстовом поле, он может редактировать и вводить, но не может вводить китайский язык, когда переключиться в другое окно (или щелкнуть текстовое поле winform в главном окне) и повернуть назад, теперь он может вводить китайский язык.
демо
https://img2018.cnblogs.com/q/22977/201904/22977-20190410130035963-221502838.gif
<UserControl.Resources>
<Style TargetType="TextBox">
<Setter Property="IsReadOnly" Value="True"></Setter>
<Setter Property="Width" Value="200"></Setter>
<Setter Property="Height" Value="40"></Setter>
</Style>
</UserControl.Resources>
<Grid>
<TextBox InputMethod.IsInputMethodEnabled="True" InputMethod.PreferredImeState="On" MouseDoubleClick="TextBox_MouseDoubleClick"></TextBox>
</Grid>
private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var txtBox = (TextBox)sender;
txtBox.IsReadOnly = false;
}
обновление: код работает
private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var txtBox = (TextBox)sender;
txtBox.IsReadOnly = false;
InputMethod.SetIsInputMethodEnabled(txtBox , false);
InputMethod.SetIsInputMethodEnabled(txtBox , true);
}