半角文字を入力しても、一文字目が全角、一文字目以降が半角になる場合がある
対象製品
El Tabelle MultiRow 4.0J
発生環境
次に示すバージョンより、前のバージョンで発生します。
v4.0.2007.0518 (Service Pack4)
v4.0.2007.0518 (Service Pack4)
状況
修正済み
詳細
次の条件を満たす時、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"が入力されます。
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:
C#:
または、PreviewKeyDownイベントを作成し、入力時に編集モードにすることで回避します。
VB:
Private Sub MultiRowSheet1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles MultiRowSheet1.PreviewKeyDown
If MultiRowSheet1.EditState = False Then
If e.KeyData = Keys.ProcessKey Then
MultiRowSheet1.KeyAction(MKeyAction.EnterEdit)
End If
End If
End Sub
If MultiRowSheet1.EditState = False Then
If e.KeyData = Keys.ProcessKey Then
MultiRowSheet1.KeyAction(MKeyAction.EnterEdit)
End If
End If
End Sub
C#:
private void multiRowSheet1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (multiRowSheet1.EditState == false) {
if (e.KeyData == Keys.ProcessKey)
{
multiRowSheet1.KeyAction(MKeyAction.EnterEdit);
}
}
}
{
if (multiRowSheet1.EditState == false) {
if (e.KeyData == Keys.ProcessKey)
{
multiRowSheet1.KeyAction(MKeyAction.EnterEdit);
}
}
}
キーワード
ETMR05971
この文書は、以前は次のバグレポートIDで公開されていました : 6834