SPREAD.NET 2.5 WinFormでコンボボックスのセルに表示と値を設定

Spread.NET 2.5 Windows Formな環境での開発中に知ったこと。

VB6のComboBoxのItemDataのように表示と値を設定する方法が無いかと
以前は自前で面倒な方法で対応していたけど、ふとGrapeCityのサポート情報を探してみると
プロパティで設定できることがわかった(^^;;

Itemsプロパティに表示用値、
ItemDataプロパティに対応するデータをそれぞれセットしておき
EditorValueプロパティを選択項目の対応するデータを値とするように指定すれば良いらしい。

※ここが肝!
EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData

セルのValueに値をセットしてやれば表示も連動するのでデータ読込時の対応も楽。
もっと早く調べておけばよかったなぁ

以下は、DataSetに取得したレコードをコンボボックスに設定するサンプル。
※DataSetの取得部分など省略。

※サンプルコードの環境:Visual Studio 2005 VB.NET
 プロジェクト種類:Windowsアプリケーション

  1. 'あらかじめdSetに表示するデータを取得しておく
  2. 'Dim dSet As DataSet
  3. 'Dim spdTarget As FarPoint.Win.Spread.FpSpread '対象Spread
  4. 'Dim col As Integer '対象列
  5.  
  6. Dim cboText(0) As String '表示用 文字列
  7. Dim cboValue(0) As String '値用 文字列
  8.  
  9. Dim cboCell As New FarPoint.Win.Spread.CellType.ComboBoxCellType()
  10.  
  11.  
  12. Dim idx As Integer = 0
  13. For Each dRow As Data.DataRow In dSet.Tables(0).Rows
  14. ReDim Preserve cboText(idx)
  15. ReDim Preserve cboValue(idx)
  16. cboText(idx) = dRow.Item("名称") '表示する内容
  17. cboText(idx) = dRow.Item("コード") '対応する値
  18.  
  19. idx += 1
  20. Next
  21.  
  22.  
  23. cboCell.Items = cboText '表示用にセット
  24. cboCell.ItemData = cboValue '値用にセット
  25. cboCell.EditorValue = FarPoint.Win.Spread.CellType.EditorValue.ItemData '選択項目の対応するデータを値とする
  26.  
  27.  
  28. '指定列の全行にコンボを設定する
  29. For row As Integer = 0 To spdTarget.ActiveSheet.RowCount - 1
  30. spdTarget.ActiveSheet.Cells(row, col).CellType = cboCell
  31. Next

SPREAD.NET 2.5 WinFormでコンボボックスのセルに表示と値を設定” への1件のコメント

  1. ピンバック: User links about "grapecity" on iLinkShare

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*