作成日: 2013/09/05 最終更新日: 2013/09/05
文書種別
制限事項
詳細
C1FlexGridのエディタとしてTextBoxを設定し、編集モードになった時にUnicodeまたはShift+JISでエンコードした文字をコードから入力し、そのセルから移動して編集を終了すると、表示されたテキストが文字化け(*)します。
C1FlexGridの組み込みテキストボックスエディタを用いた場合も、同じ現象が発生します。
*(入力文字)0xF154または0xE0D0(「・」)
(表示結果) 「□」
※ IMEエディタを用いて手動で「・」を直接入力した場合は発生しません。
また、MS DataGridViewのDataGridViewTextBoxEditingControlコントロールを使用した場合も、この現象は発生しません。
C1FlexGridの組み込みテキストボックスエディタを用いた場合も、同じ現象が発生します。
*(入力文字)0xF154または0xE0D0(「・」)
(表示結果) 「□」
※ IMEエディタを用いて手動で「・」を直接入力した場合は発生しません。
また、MS DataGridViewのDataGridViewTextBoxEditingControlコントロールを使用した場合も、この現象は発生しません。
回避方法
これは仕様上の動作です。
デフォルトでC1FlexGridが、これらの文字をサポートしないGDI+を使用するために発生します。
GDI+がサポートしない文字を使用するには、C1FlexGridのUseCompatibleTextRenderingプロパティをFalseに設定してください。
◆サンプルコード
----------------
Me.C1FlexGrid1.UseCompatibleTextRendering = False
----------------
これにより、グリッドはGCI+の代わりにTextRendererクラスを使用するようになります。
※補足
MSのコントロールはデフォルトでTextRendererクラスを使用しているため、この現象が発生しません。しかし、アプリケーションレベルまたは個々のコントロールレベル(例:Labelなど)でUseCompatibleTextRenderingプロパティをTrueに設定すると、同じ現象が発生します。
デフォルトでC1FlexGridが、これらの文字をサポートしないGDI+を使用するために発生します。
GDI+がサポートしない文字を使用するには、C1FlexGridのUseCompatibleTextRenderingプロパティをFalseに設定してください。
◆サンプルコード
----------------
Me.C1FlexGrid1.UseCompatibleTextRendering = False
----------------
これにより、グリッドはGCI+の代わりにTextRendererクラスを使用するようになります。
※補足
MSのコントロールはデフォルトでTextRendererクラスを使用しているため、この現象が発生しません。しかし、アプリケーションレベルまたは個々のコントロールレベル(例:Labelなど)でUseCompatibleTextRenderingプロパティをTrueに設定すると、同じ現象が発生します。
旧文書番号
80444