首页 > 解决方案 > 更改文本框 IsReadOnly 属性后,无法输入中文

问题描述

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);
        }

标签: wpfwinformsuser-controls

解决方案


推荐阅读