ImeMode プロパティをDisableに設定すると、NoControlの設定が無効になる
対象製品
El Tabelle MultiRow 4.0J
発生環境
この現象は、次のファイルバージョンのアセンブリで発生します。
4.0.2007.0518 以降
4.0.2007.0518 以降
状況
現象確認済み
詳細
ImeMode プロパティがDisableに設定されているセルを編集後、ImeMode プロパティがNoControlに設定されているセルへ移動したとき、ImeModeがDisableのままになり変更されません。
回避方法
次のようなコードを、LeaveCellイベント内に追加することで回避できます。
[VisualBasic]
If MultiRowSheet1.ActiveCell.ImeMode.Equals(ImeMode.Disable) Then
MultiRowSheet1.ActiveCell.Tag = ImeMode.Disable
MultiRowSheet1.ActiveCell.ImeMode = ImeMode.Off
End If
If Not MultiRowSheet1(e.NewPosition).Tag Is Nothing Then
If TypeOf MultiRowSheet1(e.NewPosition).Tag Is ImeMode Then
MultiRowSheet1(e.NewPosition).ImeMode = CType(MultiRowSheet1(e.NewPosition).Tag, ImeMode)
End If
End If
[C#]
if (multiRowSheet1.ActiveCell.ImeMode == ImeMode.Disable)
{
multiRowSheet1.ActiveCell.Tag = ImeMode.Disable;
multiRowSheet1.ActiveCell.ImeMode = ImeMode.Off;
}
if (multiRowSheet1[e.NewPosition].Tag != null)
{
if (multiRowSheet1[e.NewPosition].Tag is ImeMode)
{
multiRowSheet1[e.NewPosition].ImeMode = (ImeMode)multiRowSheet1[e.NewPosition].Tag;
}
}
[VisualBasic]
If MultiRowSheet1.ActiveCell.ImeMode.Equals(ImeMode.Disable) Then
MultiRowSheet1.ActiveCell.Tag = ImeMode.Disable
MultiRowSheet1.ActiveCell.ImeMode = ImeMode.Off
End If
If Not MultiRowSheet1(e.NewPosition).Tag Is Nothing Then
If TypeOf MultiRowSheet1(e.NewPosition).Tag Is ImeMode Then
MultiRowSheet1(e.NewPosition).ImeMode = CType(MultiRowSheet1(e.NewPosition).Tag, ImeMode)
End If
End If
[C#]
if (multiRowSheet1.ActiveCell.ImeMode == ImeMode.Disable)
{
multiRowSheet1.ActiveCell.Tag = ImeMode.Disable;
multiRowSheet1.ActiveCell.ImeMode = ImeMode.Off;
}
if (multiRowSheet1[e.NewPosition].Tag != null)
{
if (multiRowSheet1[e.NewPosition].Tag is ImeMode)
{
multiRowSheet1[e.NewPosition].ImeMode = (ImeMode)multiRowSheet1[e.NewPosition].Tag;
}
}
キーワード
ETMR06741
この文書は、以前は次のバグレポートIDで公開されていました : 7456