「Windows10でDataGridViewに2文字入力されちゃう」が直っているようで直っていなかった
バリバリWindows Formを使っているので、昨年から以下の事象に悩まされていました。
Windows 10 April 2018 Update(バージョン 1803)がいつの間にか開発環境に入ってしまったので、ついでに直っているか確認してみました。
2文字入力は直っていて一見問題無さそうに見えたのですが、どうも実際に開発しているアプリだと挙動がおかしく 「さ」が「sあ」になる場合が出てきています。(母音以外がおかしい)
アプリ側ではフォーカスしている列によってIMEを切り替えているので、
以下のテストプログラムで試してみました。
public Form1() { InitializeComponent(); this.dataGridView1.CellEnter += dataGridView1_CellEnter; } private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { switch (e.ColumnIndex) { case 0: this.dataGridView1.ImeMode = ImeMode.Hiragana; break; default: this.dataGridView1.ImeMode = ImeMode.Off; break; } }
実行してみると、起動直後に入力した場合に入力がおかしくなっています。
この場合は、次の行とかは問題無さそうです。(実際の業務アプリの方は次の行でも問題になっているので、何か条件があるのかもしれません)
現時点ではもの凄いダサい回避方法でお茶を濁しています。orz
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { switch (e.ColumnIndex) { case 0: this.dataGridView1.ImeMode = ImeMode.Hiragana; this.dataGridView1.BeginEdit(false); // add this.dataGridView1.EndEdit(); // add break; default: this.dataGridView1.ImeMode = ImeMode.Off; break; } }
Microsoftさんもうちょっときちんと直して。お願いします(´・ω・)