拡張コンボボックス型セルをマウスから操作できなくなる場合がある
対象製品
El Tabelle for .NET 2.0J
発生環境
・この現象は次のファイル バージョンのアセンブリで発生します。
v2.0.2005.0331 および以前のアセンブリ
v2.0.2005.0331 および以前のアセンブリ
状況
修正済み
詳細
ShowDialog メソッドで呼び出すフォームで、Form.Load イベントで拡張コンボボックスの初期化と常時入力モードの設定を同時に行うと、拡張コンボボックスが操作不能の状態になります。
操作不能状態の外観は Enabled=false でイベント応答を無効にした場合に似ていますが、キーボード操作ではアイテムを選択可能な点が通常の Enabled プロパティの動作と異なります。また、この現象では Enabled プロパティの値は変化しません。
[Visual Basic]
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With Me.Sheet1
Sheet1.EditType = GrapeCity.Win.ElTabelle.EditType.AlwaysEdit
Dim objSpComboEditor As New GrapeCity.win.ElTabelle.Editors.SuperiorComboEditor
objSpComboEditor.AutoDropDown = True
objSpComboEditor.DropDownWidth = 100
objSpComboEditor.DescriptionWidth = 70
objSpComboEditor.DropDownItemsStyle = GrapeCity.Win.ElTabelle.DropDownItemsStyle.TextWithDescription
objSpComboEditor.Editable = False
objSpComboEditor.ItemHeight = 20
objSpComboEditor.Items.Add(Nothing, "10", "テスト1")
objSpComboEditor.Items.Add(Nothing, "20", "テスト2")
.Columns(0).Editor = objSpComboEditor
.MaxRows = 2
End With
Me.ActiveControl = Me.Sheet1
End Sub
'Form2を表示するコード
Dim objForm As New Form2
objForm.ShowDialog(Me)
操作不能状態の外観は Enabled=false でイベント応答を無効にした場合に似ていますが、キーボード操作ではアイテムを選択可能な点が通常の Enabled プロパティの動作と異なります。また、この現象では Enabled プロパティの値は変化しません。
[Visual Basic]
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With Me.Sheet1
Sheet1.EditType = GrapeCity.Win.ElTabelle.EditType.AlwaysEdit
Dim objSpComboEditor As New GrapeCity.win.ElTabelle.Editors.SuperiorComboEditor
objSpComboEditor.AutoDropDown = True
objSpComboEditor.DropDownWidth = 100
objSpComboEditor.DescriptionWidth = 70
objSpComboEditor.DropDownItemsStyle = GrapeCity.Win.ElTabelle.DropDownItemsStyle.TextWithDescription
objSpComboEditor.Editable = False
objSpComboEditor.ItemHeight = 20
objSpComboEditor.Items.Add(Nothing, "10", "テスト1")
objSpComboEditor.Items.Add(Nothing, "20", "テスト2")
.Columns(0).Editor = objSpComboEditor
.MaxRows = 2
End With
Me.ActiveControl = Me.Sheet1
End Sub
'Form2を表示するコード
Dim objForm As New Form2
objForm.ShowDialog(Me)
回避方法
この現象はファイル バージョン v2.0.2005.0518 以降のアセンブリで修正されています。
修正版は こちら からダウンロードできます。
また、次の操作を行うことで現象を軽減できます。
常時入力モードを使用せず、Sheet.EnteredCell イベントで擬似的な常時入力を使用します。
[Visual Basic]
Private Sub Sheet1_EnteredCell(ByVal sender As Object, ByVal e As System.EventArgs) Handles Sheet1.EnteredCell
Sheet1.EditState = True
End Sub
修正版は こちら からダウンロードできます。
また、次の操作を行うことで現象を軽減できます。
常時入力モードを使用せず、Sheet.EnteredCell イベントで擬似的な常時入力を使用します。
[Visual Basic]
Private Sub Sheet1_EnteredCell(ByVal sender As Object, ByVal e As System.EventArgs) Handles Sheet1.EnteredCell
Sheet1.EditState = True
End Sub
キーワード
ELTB04651
この文書は、以前は次のバグレポートIDで公開されていました : 4819