[FlexGrid for WinForms] マージしたセルの編集ができなくなることがある

文書番号 : 82059     文書種別 : 既知の問題     登録日 : 2017/03/14     最終更新日 : 2017/05/17
文書を印刷する
対象製品
ComponentOne for WinForms
ステータス
修正済み
詳細
マージセルにおいて、マージ範囲内の最上部のセル部分(縦方向でのマージの場合)、またはマージ範囲内の左端のセル部分(横方向でのマージの場合)をダブルクリックしないと、マージセルの編集を行うことができません。
回避方法
この問題はバージョン4.0.20171.260で修正されました。
※ .NET Framework 2.0用アセンブリはメンテナンスモードに移行したため、C1.Win.C1xxxx.2.dllでの修正は行われません。
  .NET Framework 4.0用アセンブリ(C1.Win.C1xxxx.4.dll)をご利用ください。

修正版の適用方法については、アップデートの方法を参照してください。

修正版を適用しない場合の回避方法は、次の通りです。

縦方向のマージの場合、MouseClickイベントなどを利用して、ダブルクリックしたセルのRowプロパティを最上部のセルの値に設定した後、StartEditingメソッドを実行します。

以下のコードは、1行目2行目をマージしたグリッドで2行目をダブルクリックした場合のサンプルです。

◎サンプルコード(VB)
Private Sub C1FlexGrid1_MouseClick(sender As Object, e As MouseEventArgs)
  If C1FlexGrid1.Row = 2 Then
    C1FlexGrid1.Row = 1
    C1FlexGrid1.StartEditing()
  End If
End Sub

◎サンプルコード(C#)
private void c1FlexGrid1_MouseClick(object sender, MouseEventArgs e)
{
  if (c1FlexGrid1.Row == 2)
  {
    c1FlexGrid1.Row = 1;
    c1FlexGrid1.StartEditing();
  }
}


横方向のマージの場合も同様にMouseClickイベントなどを利用して、ダブルクリックしたセルのColプロパティを左端のセルの値に設定した後、StartEditingメソッドを実行します。

以下のコードは、1列目2列目をマージしたグリッドで2列目をダブルクリックした場合のサンプルです。

◎サンプルコード(VB)
Private Sub C1FlexGrid1_MouseClick(sender As Object, e As MouseEventArgs)
  If C1FlexGrid1.Col = 2 Then
    C1FlexGrid1.Col = 1
    C1FlexGrid1.StartEditing()
  End If
End Sub

◎サンプルコード(C#)
private void c1FlexGrid1_MouseClick(object sender, MouseEventArgs e)
{
  if (c1FlexGrid1.Col == 2)
  {
    c1FlexGrid1.Col = 1;
    c1FlexGrid1.StartEditing();
  }
}