SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)(AD)

「SPREAD for Windows Forms 10.0J」の新機能~Excel互換機能と編集機能が大幅強化

  • このエントリーをはてなブックマークに追加

 SPREADが初めて発売されたのが1994年。VBX版として登場しました。その後、OCX、ActiveX版が次々とリリースされ、.NET向けのWindows Forms版が登場したのはVBX発売の10年後となる2004年でした。それからさらに10年以上経った現在、SPREADシリーズは、Windows Forms版のほか、ASP.NET版、WPF版、またJavaScriptライブラリといった4つのラインナップを揃え、累計販売ライセンスは140,000本を超えています。

  • このエントリーをはてなブックマークに追加

 多くの開発者に支持され続け、2017年2月にはとうとう2桁のバージョンとなる「SPREAD for Windows Forms 10.0J」と「SPREAD for ASP.NET 10.0J」が発売されました。

 本記事では、「SPREAD for Windows Forms 10.0J」の新機能について紹介します。

対象読者

  • Visual Basicまたは、C#を使ってプログラムを作ったことのある方
  • 業務アプリケーションにグリッドを使用している方
  • Microsoft Excelのような表計算コンポーネントに興味のある方

準備

 本記事で紹介するサンプルを実行するには、Visual Studio 2012/2013/2015およびSPREAD for Windows Forms 10.0Jの製品版またはトライアル版のインストールが必要です。トライアル版はこちらからダウンロードしていただけます。

 インストール後、Visual Studioのツールボックスにコントロールを追加する方法については、製品ヘルプで詳しく解説していますので、そちらをご覧ください。

充実した編集機能を持つセル型

 SPREADの代表的な機能の一つとして、豊富なセル型が挙げられます。セル型は、あらゆるデータ型に適した入力方法や書式を提供します。入力や書式を強力に支援するといえば、グレープシティには「InputMan」という、SPREADと同じくらいの歴史を持つ代表的な製品があります。SPREADのセル型にもInputManが採用されており、Windows Formsでは7.0JでGcTextBox型セル、GcDateTime型セルが、8.0JではGcNumber型セルが追加されました。10.0Jでは、新たに4つのInputManセルを追加しています。

GcComboBox型セル(コンボボックス)

 GcComboBox型セルは、画像と文字列を表示できるテキストボックスと、ドロップダウンされるマルチカラム対応のリストボックスから構成される多機能なコンボボックスを実現します。テキストボックスは、GcTextBox型セルと同等の書式を設定可能で、ひらがな、半角アルファベット、カタカナといった入力可能な文字種を指定でき、指定文字種に自動変換する機能も備えます。

 ここでは、GcComboBox型セルの最大の特長であるマルチカラムのリストボックスを作成する方法を紹介します。マルチカラムは、複数のデータフィールドを持つデータソースが存在していれば簡単に実現します。GcComboBoxCellTypeクラスのDataSourceプロパティにデータソースを設定するだけです。選択した項目のどの列をセルに表示するかといった設定は、TextSubItemIndexプロパティに列のインデックスを指定します(マルチカラムで表現される各項目は「サブ項目」といいます)。列数に合わせてドロップダウンリストの幅を自動調整するには、DropDown.AutoWidthプロパティをTrueに設定します。

 次のサンプルコードは、便宜的にDataTableを使用して曜日データを作成し、GcComboBox型セルに接続する例です。

VB.NET
' 複数列が存在するデータソースを作成します。
Dim table As New DataTable()
table.Columns.Add("曜日")
table.Columns.Add("日本語")
table.Columns.Add("英語")
table.Rows.Add("Sun", "日曜", "Sunday")
table.Rows.Add("Mon", "月曜", "Monday")
table.Rows.Add("Tue", "火曜", "Tuesday")
table.Rows.Add("Wed", "水曜", "Wednesday")
table.Rows.Add("Thu", "木曜", "Thursday")
table.Rows.Add("Fri", "金曜", "Friday")
table.Rows.Add("Sat", "土曜", "Saturday")

' GcComboBox型セルを作成します。
Dim gccombobox As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType()
' データソースを設定します。
gccombobox.DataSource = table
' ドロップダウンリストの幅を自動調整します。
gccombobox.DropDown.AutoWidth = True
' テキストボックスに表示するサブ項目のインデックスを指定します。
gccombobox.TextSubItemIndex = 1

' SPREADの先頭列のセルをGcComboBox型セルに設定します。
FpSpread1.Sheets(0).Columns(0).CellType = gccombobox
C#
// 複数列が存在するデータソースを作成します。
DataTable table = new DataTable();
table.Columns.Add("曜日");
table.Columns.Add("日本語");
table.Columns.Add("英語");
table.Rows.Add("Sun", "日曜", "Sunday");
table.Rows.Add("Mon", "月曜", "Monday");
table.Rows.Add("Tue", "火曜", "Tuesday");
table.Rows.Add("Wed", "水曜", "Wednesday");
table.Rows.Add("Thu", "木曜", "Thursday");
table.Rows.Add("Fri", "金曜", "Friday");
table.Rows.Add("Sat", "土曜", "Saturday");

// GcComboBox型セルを作成します。
GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType gccombobox = new GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType();
// データソースを設定します。
gccombobox.DataSource = table;
// ドロップダウンリストの幅を自動調整します。
gccombobox.DropDown.AutoWidth = true;
// テキストボックスに表示するサブ項目のインデックスを指定します。
gccombobox.TextSubItemIndex = 1;

// SPREADの先頭列のセルをGcComboBox型セルに設定します。
fpSpread1.Sheets[0].Columns[0].CellType = gccombobox;

 実行すると、先頭列にGcComboBox型セルが設定され、ドロップダウンを開くと、3つのカラムを持つリストが、項目を選択するとセルには日本語の曜日が表示されます。

マルチカラムリストを表示するGcComboBox型セル
マルチカラムリストを表示するGcComboBox型セル

 もちろん、データソースに接続せずにリスト項目を追加することも可能です。製品ヘルプの「コレクションに追加(GcComboBox型セル)」にサンプルコード付きで解説していますので、参考にしてください。

次のページ
GcMask型セル(マスク)

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(SPREAD)連載記事一覧

もっと読む

この記事の著者

グレープシティ株式会社 SPREADチーム(グレープシティカブシキガイシャ スプレッドチーム)

 宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 SPREADは、ExcelライクなUIを実現するグリッドコンポーネントの定番として、日本のみならず全世界で数多くの開発者に利用されている製品。同チームはWindows Forms、ASP.NET、WPFといった.NET向け製品のほか、HTML...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10062 2017/03/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング