矢印キーでGcComboBoxCellの値を変更するとき、最後または最初の項目が選択されてしまう場合がある

文書番号 : 37706     文書種別 : 不具合     登録日 : 2014/12/15     最終更新日 : 2016/04/28
文書を印刷する
対象製品
MultiRow for Windows Forms 7.0J
状況
修正済み
詳細
同じ値に設定された複数のGcComboBoxCellを操作するとき、2番目に編集するセルで矢印キーを使って値を選択すると、その前後の項目ではなく最後または最初の項目が選択されます。

例えば、ドロップダウン項目に1~10の値を設定したGcComboBoxCellを2つ配置し、両方のセルに同じ値の"3"を設定している場合、実行時に1つ目のGcComboBoxCellの値を変更した後、2つ目のGcComboBoxCellを編集状態にし、「↑」キーを押すと、"2"ではなく"10"が選択されます。
回避方法
この問題はService Pack 4(v7.0.2016.0428)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。

Service Pack 4より前のバージョンでは次の方法で回避可能です。

EditingControlShowingイベントに次のコードを記述して、編集コントロールの内容を再設定します。

[Visual Basic]
Imports GrapeCity.Win.MultiRow
Imports GrapeCity.Win.MultiRow.InputMan

  Private Sub GcMultiRow1_EditingControlShowing(sender As Object, e As EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
    If TypeOf e.Control Is GcComboBoxEditingControl Then
      Dim GcComobBox = CType(e.Control, GcComboBoxEditingControl)
      If (GcComobBox IsNot Nothing) Then
        Dim temp = GcComobBox.Text
        GcComobBox.Text = Nothing
        GcComobBox.Text = temp
      End If
    End If

  End Sub

[C#]
using GrapeCity.Win.MultiRow;
using GrapeCity.Win.MultiRow.InputMan;

  private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
  {
    if (e.Control is GcComboBoxEditingControl )
    {
      GcComboBoxEditingControl gcComobBox = (GcComboBoxEditingControl)e.Control;
      if ((gcComobBox != null))
      {
        string temp = gcComobBox.Text;
        gcComobBox.Text = null;
        gcComobBox.Text = temp;
      }
    }
  }

キーワード
MLTR10922