作成日: 2015/04/07 最終更新日: 2016/01/20
文書種別
不具合
状況
修正済み
詳細
コンボボックスのリストをEnterキーで選択すると、ドロップダウンが閉じた時にComboCloseUpイベントが発生しません。
※マウスクリックで選択した場合は、ComboCloseUpイベントが発生します。
※マウスクリックで選択した場合は、ComboCloseUpイベントが発生します。
回避方法
この問題はバージョン2.0.20153.110または4.0.20153.110で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです。
SetupEditorイベントでKeyDownイベントを手動で発生させ、KeyDownイベント内でEnterキーかどうかを判断して、ComboCloseUpイベントを手動で発生させます。
◎サンプルコード(VB)
◎サンプルコード(C#)
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです。
SetupEditorイベントでKeyDownイベントを手動で発生させ、KeyDownイベント内でEnterキーかどうかを判断して、ComboCloseUpイベントを手動で発生させます。
◎サンプルコード(VB)
Dim args As RowColEventArgs
Private Sub flex_ComboCloseUp(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs)
ListBox1.Items.Add("ComboCloseUp Event Fired")
End Sub
Private Sub flex_KeyDown(sender As Object, e As KeyEventArgs)
If e.KeyValue = Keys.Enter Then
args = New RowColEventArgs(_flex.Row, _flex.Col)
flex_ComboCloseUp(_flex, args)
End If
End Sub
Private Sub flex_SetupEditor(sender As Object, e As RowColEventArgs)
AddHandler _flex.Editor.KeyDown, AddressOf flex_KeyDown
End Sub
Private Sub flex_ComboCloseUp(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs)
ListBox1.Items.Add("ComboCloseUp Event Fired")
End Sub
Private Sub flex_KeyDown(sender As Object, e As KeyEventArgs)
If e.KeyValue = Keys.Enter Then
args = New RowColEventArgs(_flex.Row, _flex.Col)
flex_ComboCloseUp(_flex, args)
End If
End Sub
Private Sub flex_SetupEditor(sender As Object, e As RowColEventArgs)
AddHandler _flex.Editor.KeyDown, AddressOf flex_KeyDown
End Sub
◎サンプルコード(C#)
RowColEventArgs args;
private void flex_ComboCloseUp(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
ListBox1.Items.Add("ComboCloseUpイベント発生");
}
private void flex_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == Keys.Enter) {
args = new RowColEventArgs(_flex.Row, _flex.Col);
flex_ComboCloseUp(_flex, args);
}
}
private void flex_SetupEditor(object sender, RowColEventArgs e)
{
_flex.Editor.KeyDown += flex_KeyDown;
}
private void flex_ComboCloseUp(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
ListBox1.Items.Add("ComboCloseUpイベント発生");
}
private void flex_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == Keys.Enter) {
args = new RowColEventArgs(_flex.Row, _flex.Col);
flex_ComboCloseUp(_flex, args);
}
}
private void flex_SetupEditor(object sender, RowColEventArgs e)
{
_flex.Editor.KeyDown += flex_KeyDown;
}
旧文書番号
81237