SHOEISHA iD

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

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

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

「SPREAD for Windows Forms 7.0J」の新機能に迫る

グレープシティのフラグシップコンポーネントがWindows 8/Visual Studio 2012に対応

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

セル、行、列エディタの実行

 SPREADでセルを修飾するには、製品付属の専用デザイナを使用します。

 SPREADのデザイナの起動は2つの方法があります。1つはWindowsフォーム上のSPREADコントロールの[FpSpreadタスク]から、もう一つは非表示コントロール領域に配置されたSheetViewの[SheetViewタスク]からです。シートのデザインに特化したのは後者なので、まずはSheetViewタスクから「セル、行、列エディタ」を起動してみましょう。

図6 SheetViewタスクからのデザイナ実行
図6 SheetViewタスクからのデザイナ実行

セル、行、列エディタでの作業

 セル、行、列エディタでは、セル単位、行単位、列単位の設定が可能です。今回は列にバインドしてデータ表示を行うので列の設定を行います。

列の設定

 最初に修飾する内容としては、ComId列の削除とタイトルの日本語化を行ってみたいと思います。

 そのためには列タイトルをクリックして列ごとの設定を行います。

図7 列のプロパティ
図7 列のプロパティ

 Labelプロパティが列のタイトルなので、Labelプロパティに各列の日本語タイトルを記入していきます。CPU、Disk、Memory、Displayは要素名がタイトルとして使えるのでLabelプロパティはデフォルトのままで問題ありません。列のA~EのLabelプロパティに対して「ランキング」「製品名」「発売元」「最安値」「最高値」をそれぞれ設定します。

 次にデータソースのどの要素を割り当てるかをDataFieldプロパティに設定しようとしたのですが、DataFiledプロパティのプロパティ欄には自由に要素名が入力できません。このあたりは改善してほしい点なのですが、現状での対応策として今回はコード側でDataFieldプロパティを指定します。

 MainForm.vbのMe_Loadプロシージャの内容を変更しましょう。

リスト5 MainForm.vbの変更
Imports System.ComponentModel
Imports FarPoint.Win.Spread.Model
 
Public Class MainForm
    Private WithEvents ViewModel As New MainViewModel
 
    Private Sub Me_Load(sender As Object, e As EventArgs) Handles Me.Load
        Me.Cursor = Cursors.WaitCursor
        '
        Me.Result_Sheet.RowCount = 0
        Me.Result_Sheet.ColumnCount = 9
        Me.Result_Sheet.AutoGenerateColumns = False
        Me.Result_Sheet.Columns(0).DataField = "Ranking"
        Me.Result_Sheet.Columns(1).DataField = "Name"
        Me.Result_Sheet.Columns(2).DataField = "Manufacturer"
        Me.Result_Sheet.Columns(3).DataField = "LowestPrice"
        Me.Result_Sheet.Columns(4).DataField = "HighestPrice"
        Me.Result_Sheet.Columns(5).DataField = "CPU"
        Me.Result_Sheet.Columns(6).DataField = "Disk"
        Me.Result_Sheet.Columns(7).DataField = "Memory"
        Me.Result_Sheet.Columns(8).DataField = "Display"
        '
        Me.ViewModel.GetItemsCommand("")
    End Sub
 
    Private Sub ViewModel_PropertyChanged(sender As Object,
                                          e As PropertyChangedEventArgs) _
                                      Handles ViewModel.PropertyChanged
        Me.FpSpread1.DataSource = Me.ViewModel.Items
        '
        Me.Cursor = Cursors.Default
    End Sub
End Class

 AutoGenerateColumnsプロパティがTrueだと、データソースに合わせて列が追加されてしまうため、まずこのプロパティをFalseにします。その後、ColumnsコレクションのDataFieldプロパティに対して要素名を設定します。

実行結果

 それでは、ここまでの設定でどのように表示が変わるか確認してみましょう。

図8 実行結果
図8 実行結果

 想定したとおりのComId欄の削除とタイトル名の日本語化が行えました。

次のページ
セル型の設定

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

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

もっと読む

この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6993 2016/03/29 17:40

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング