コードによってコンボボックス/マルチカラムコンボボックス型セルのドロップダウンリストを表示したい

文書番号 : 38912     文書種別 : 使用方法     登録日 : 2015/06/29     最終更新日 : 2015/06/29
文書を印刷する
対象製品
SPREAD for Windows Forms 8.0J
詳細
コンボボックス型セルでは、編集中のエディタとしてFpComboクラスが使用され、FpComboクラスのDropDownプロパティを使用してドロップダウンリストを表示させることが可能です。また、マルチカラムコンボボックス型セルでは、サブエディタコントロールを表示するためのShowSubEditorメソッドを使用します。

◎サンプルコード(VB)
' コンボボックス型セルの場合
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  ' セルの設定
  Dim cmbocell As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
  cmbocell.Items = New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
  FpSpread1.ActiveSheet.Columns(0).CellType = cmbocell
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim row As Integer = FpSpread1.ActiveSheet.ActiveRowIndex
  Dim col As Integer = FpSpread1.ActiveSheet.ActiveColumnIndex
  ' コンボボックス型セルのリストをドロップダウンします
  If TypeOf FpSpread1.ActiveSheet.GetCellType(row, col) Is FarPoint.Win.Spread.CellType.ComboBoxCellType Then
    FpSpread1.Focus()
    FpSpread1.StartCellEditing(Nothing, False)
    CType(FpSpread1.EditingControl, FarPoint.Win.FpCombo).DroppedDown = True
  End If
End Sub


' マルチカラムコンボボックス型セルの場合
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  ' データの作成
  Dim dt As New DataTable("LIST")
  dt.Columns.Add("Code", GetType(Int32))
  dt.Columns.Add("Name", GetType(String))
  dt.Rows.Add(New Object() {100, "AAA"})
  dt.Rows.Add(New Object() {200, "BBB"})
  dt.Rows.Add(New Object() {300, "CCC"})
  dt.AcceptChanges()

  ' セルの設定
  Dim combo As New FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType()
  combo.DataSourceList = dt
  combo.DataColumnName = "Code"
  combo.ColumnEditName = "Name"
  combo.ListWidth = 215
  FpSpread1.ActiveSheet.Columns(1).CellType = combo
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim row As Integer = FpSpread1.ActiveSheet.ActiveRowIndex
  Dim col As Integer = FpSpread1.ActiveSheet.ActiveColumnIndex
  ' マルチカラムコンボボックス型セルのリストをドロップダウンします
  If TypeOf FpSpread1.ActiveSheet.GetCellType(row, col) Is FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType Then
    FpSpread1.Focus()
    FpSpread1.StartCellEditing(Nothing, False)
    Dim mComboCell As FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType = FpSpread1.ActiveSheet.GetCellType(row, col)
    mComboCell.ShowSubEditor()
  End If
End Sub


◎サンプルコード(C#)
// コンボボックス型セルの場合
private void Form1_Load(object sender, EventArgs e)
{
  // セルの設定
  FarPoint.Win.Spread.CellType.ComboBoxCellType cmbocell = new FarPoint.Win.Spread.CellType.ComboBoxCellType();
  cmbocell.Items = new String[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
  fpSpread1.ActiveSheet.Columns[0].CellType = cmbocell;
}

private void button1_Click(object sender, EventArgs e)
{
  int row = fpSpread1.ActiveSheet.ActiveRowIndex;
  int col = fpSpread1.ActiveSheet.ActiveColumnIndex;
  // コンボボックス型セルのリストをドロップダウンします
  if (fpSpread1.ActiveSheet.GetCellType(row, col) is FarPoint.Win.Spread.CellType.ComboBoxCellType)
  {
    fpSpread1.Focus();
    fpSpread1.StartCellEditing(null, false);
    ((FarPoint.Win.FpCombo)fpSpread1.EditingControl).DroppedDown = true;
  }
}


// マルチカラムコンボボックス型セルの場合
private void Form1_Load(object sender, EventArgs e)
{
  // データの作成
  DataTable dt = new DataTable("LIST");
  dt.Columns.Add("Code", Type.GetType("System.Int32"));
  dt.Columns.Add("Name", Type.GetType("System.String"));
  dt.Rows.Add(new object[] {100, "AAA"});
  dt.Rows.Add(new object[] {200, "BBB"});
  dt.Rows.Add(new object[] {300, "CCC"});
  dt.AcceptChanges();

  FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType combo = new FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType();
  combo.DataSourceList = dt;
  combo.DataColumnName = "Code";
  combo.ColumnEditName = "Name";
  combo.ListWidth = 215;
  fpSpread1.ActiveSheet.Columns[1].CellType = combo;
}

private void button1_Click(object sender, EventArgs e)
{
  int row = fpSpread1.ActiveSheet.ActiveRowIndex;
  int col = fpSpread1.ActiveSheet.ActiveColumnIndex;
  // マルチカラムコンボボックス型セルのリストをドロップダウンします
  if (fpSpread1.ActiveSheet.GetCellType(row, col) is FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType)
  {
    fpSpread1.Focus();
    fpSpread1.StartCellEditing(null, false);
    FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType mComboCell = (FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType)fpSpread1.ActiveSheet.GetCellType(row, col);
    mComboCell.ShowSubEditor();
  }
}
キーワード
セル型