半角文字を入力しても、一文字目が全角、一文字目以降が半角になる場合がある。

文書番号 : 23591     文書種別 : 不具合     最終更新日 : 2007/03/07
文書を印刷する
対象製品
El Tabelle Sheet 4.0J
発生環境
次に示すバージョンより、前のバージョンで発生します。
v4.0.2007.0518 (Service Pack4)
状況
修正済み
詳細
次の条件を満たす時、IMEの設定が半角(#1)でも最初の1文字目の入力が全角になります。(#1:例えば、IMEの設定でテンキーからの入力は「常に半角」とし、テンキーから入力する場合)

次の条件を満たす時、IMEの設定が半角(#1)でも最初の1文字目の入力が全角になります。(#1:例えば、IMEの設定でテンキーからの入力は「常に半角」とし、テンキーから入力する場合)

1) セルのIMEモード(ImeMode)プロパティに、Windows.Forms.ImeMode.On、Windows.Forms.ImeMode.Hiragana、またはWindows.Forms.ImeMode.Katakanaなどを設定し IMEを使用する設定を行っている。
2) 1)が設定されているセルに対して、シート非編集時に、半角の値を入力する。

例えば、"555"を入力しても、セルには"555"が入力されます。
回避方法
この現象は、ファイル バージョン v4.0.2007.0920 以降のアセンブリで修正されています。アセンブリはこちらから取得できます。
または、PreviewKeyDownイベントを作成し、入力時に編集モードにすることで回避します。

VB:
Private Sub Sheet1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Sheet1.PreviewKeyDown
    If Sheet1.EditState = False Then
      If e.KeyData = Keys.ProcessKey Then
        Sheet1.KeyAction(KeyAction.EnterEdit)
      End If
    End If
End Sub
  
C#:
private void sheet1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
   if (sheet1.EditState == false) {
    if (e.KeyData == Keys.ProcessKey)
    {
      sheet1.KeyAction(KeyAction.EnterEdit);
    }
   }
}
キーワード
ETSH05971

この文書は、以前は次のバグレポートIDで公開されていました : 6835