[]
コンボボックス型セルは、デフォルトではマウスの左ボタンによるダブルクリックを処理できません。1度目のクリックで、セルが編集モードに切り替わり、2度目のクリックでサブエディタであるFpComboコントロールが応答します。コンボボックス型セルでダブルクリックを適切に処理するには、以下のサンプルコードを参考にしてください。
コンボボックス型セルのプロパティおよびメソッドについては、ComboBoxCellTypeクラスを参照してください。
ComboBoxCellTypeクラスのインスタンスを作成して、コンボボックスのリストに表示する項目を設定します。コンボボックス型セルのサブエディタであるFpComboコントロールのClickイベントを処理します。
次のサンプルコードは、コンボボックス型セルのダブルクリックを処理します。
private void Form1_Load(object sender, System.EventArgs e)
{
FarPoint.Win.Spread.CellType.ComboBoxCellType c = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
c.Items = new String[] {"a", "b", "c"};
fpSpread1.Sheets[0].Rows[0].CellType = c;
}
private void HeaderDoubleClick(object sender, System.EventArgs e)
{
// イベントコードを追加します。
}
private void FpSpread1_EditModeOn(object sender, System.EventArgs e)
{
FarPoint.Win.FpCombo c;
if (fpSpread1.Sheets[0].ActiveRowIndex == 0)
{
c = ((FarPoint.Win.FpCombo)(fpSpread1.EditingControl));
c.Click += new System.EventHandler(HeaderDoubleClick);
}
}Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim c As New FarPoint.Win.Spread.CellType.ComboBoxCellType
c.Items = New String() {"a", "b", "c"}
FpSpread1.Sheets(0).Rows(0).CellType = c
End Sub
Private Sub HeaderDoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
'イベントコードを追加します。
End Sub
Private Sub FpSpread1_EditModeOn(ByVal sender As Object, ByVal e As System.EventArgs) Handles FpSpread1.EditModeOn
Dim c As FarPoint.Win.FpCombo
If FpSpread1.Sheets(0).ActiveRowIndex = 0 Then
c = CType(FpSpread1.EditingControl, FarPoint.Win.FpCombo)
AddHandler c.Click, AddressOf HeaderDoubleClick
End If
End Sub