コンボボックスで最初の項目が空白のとき現在の項目が選択されない場合がある

文書番号 : 26553     文書種別 : 不具合     最終更新日 : 2008/11/28
文書を印刷する
対象製品
MultiRow for Windows Forms 5.0J
発生環境
v5.0.2008.0430
v5.0.2008.0930
状況
修正済み
詳細
この現象は、コンボボックスセルをデータソースにバインドしたときに発生します。
コンボボックスセルの最初の項目が空白の場合、該当コンボボックスが編集状態に入るとき、現在の値が選択されません。
回避方法
この現象は、MultiRow for Windows Forms 5.0J 修正版(v5.0.2009.0116)で修正されています。
最新のService Packのダウンロードはこちら

または、次のようにコーディングで値を再設定することで回避できます。

[Visual Basic]
Private Sub GcMultiRow1_EditingControlShowing(ByVal sender As Object, ByVal e As GrapeCity.Win.MultiRow.EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
  ' [1/2] コンボ型セルでのEnterイベント実装
  If TypeOf e.Control Is ComboBoxEditingControl Then
    RemoveHandler e.Control.Enter, AddressOf EditingControl_Enter
    AddHandler e.Control.Enter, AddressOf EditingControl_Enter
  End If
End Sub

Private Sub EditingControl_Enter(ByVal sender As Object, ByVal e As EventArgs)
  ' [2/2] ドロップダウンリストの初期設定
  Dim combo As ComboBoxEditingControl = sender
  Dim pos As CellPosition = GcMultiRow1.CurrentCellPosition
  combo.SelectedValue = GcMultiRow1.GetValue(pos.RowIndex, pos.CellIndex)
End Sub

[C#]
private void gcMultiRow1_EditingControlShowing(object sender, GrapeCity.Win.MultiRow.EditingControlShowingEventArgs e)
{
  if (e.Control is ComboBoxEditingControl)
  {
    // [1/2] コンボ型セルでのEnterイベント実装
    e.Control.Enter -= new EventHandler(EditingControl_Enter);
    e.Control.Enter += new EventHandler(EditingControl_Enter);
  }
}
private void EditingControl_Enter(object sender, EventArgs e)
{
  // [2/2] ドロップダウンリストの初期設定
  ComboBoxEditingControl combo = sender as ComboBoxEditingControl;
  CellPosition pos = gcMultiRow1.CurrentCellPosition;
  combo.SelectedValue = gcMultiRow1.GetValue(pos.RowIndex, pos.CellIndex);
}
キーワード
MLTR07102

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