コンボボックス/マルチカラムコンボボックス型セルで現在選択されているインデックスを取得するにはどうすればいいのでしょうか?

文書番号 : 38917     文書種別 : 使用方法     登録日 : 2015/06/29     最終更新日 : 2015/06/29
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
選択されているインデックスを取得する方法は、コンボボックス型セルとマルチカラムコンボボックス型セルで異なります。ComboSelChange、ComboCloseUpイベント等に以下の記述を実装することで参照可能です。

コンボボックス型セル
CType(FpSpread1.EditingControl, FarPoint.Win.FpCombo).SelectedIndex
マルチカラムコンボボックス型セル
Dim combo As FarPoint.Win.Spread.CellType.MultiColumnEditor = e.EditingControl
CType(combo.SubEditor, FarPoint.Win.Spread.FpSpread).ActiveSheet.ActiveRowIndex

但し、FpSpread1.EditingControlはセルが編集状態になった場合のみ有効であり、非編集状態の時は何も返しませんのご注意が必要です。なお、詳細に関しては製品ヘルプ等をご参照ください。

また、コンボボックス型セルでは非編集状態のときに、ArrayクラスのIndexOfメソッドを使用することでセルの値からコンボボックスのインデックスを取得することが可能です。

◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim cboCell As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
  cboCell.Items = New String() {"Blue", "Green", "Red"}
  FpSpread1.ActiveSheet.Columns(0).CellType = cboCell
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim cboCell As FarPoint.Win.Spread.CellType.ComboBoxCellType = FpSpread1.ActiveSheet.GetCellType(0, 0)
  TextBox1.Text = Array.IndexOf(cboCell.Items, FpSpread1.ActiveSheet.GetValue(0, 0)).ToString
End Sub
関連情報
キーワード
セル型