Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
テキストから画像への変換を指定する
データ表示テクニック > ValueItems を使ってデータを自動的に変換する > テキストから画像への変換を指定する

テキストからテキストへの変換の指定と同じ方法で、テキストから画像への変換を行うことができます。ValueItems エディタ内で、DisplayValue 列に文字列を入力する代わりに、省略符ボタンを使用して、データ変換に使用されるビットマップを選択できます。ビットマップの選択を取り消すには、DisplayValueプロパティボックス内のテキストを削除し、別のビットマップを選択するか、テキストを入力します。

ValueItems オブジェクトのTranslateプロパティを True に設定する必要があることに注意してください。ビットマップの高さによっては、Visual Studio のプロパティウィンドウでRowHeight プロパティの値を増やす必要があります。その場合は、グリッドのStyle プロパティの VerticalAlignmentメンバも Center に変更する必要があります。これにより、ビットマップ(および他の列のテキストデータ)は、グリッドセルの上部ではなく、上下の中央に置かれます。

プログラムが実行されると、Value 列のアイテムと一致する Country フィールドの値は、対応する DisplayValue の画像として表示されます。


テキスト間の変換と同様に、基礎データベースには影響がありません。データ値の表現だけが異なります。コードで同様の結果を得るには、次のようにします。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim item As C1.Win.C1TrueDBGrid.ValueItem = New C1.Win.C1TrueDBGrid.ValueItem()
With Me.C1TrueDBGrid1.Columns("Country").ValueItems.Values
    Item.Value = "CAN"
    Item.DisplayValue = System.Drawing.Image.FromFile("canada.bmp")
    .Add(Item)
 
    Item = New C1.Win.C1TrueDBGrid.ValueItem()
    Item.Value = "UK"
    Item.DisplayValue = System.Drawing.Image.FromFile("uk.bmp")
    .Add(Item)
 
    Item = New C1.Win.C1TrueDBGrid.ValueItem()
    Item.Value = "USA"
    Item.DisplayValue = System.Drawing.Image.FromFile("usa.bmp")
    .Add(Item)
 
    Item = New C1.Win.C1TrueDBGrid.ValueItem()
    Item.Value = "JPN"
    Item.DisplayValue = System.Drawing.Image.FromFile("japan.bmp")
    .Add(Item)
 
    Item = New C1.Win.C1TrueDBGrid.ValueItem()
    Item.Value = "AUS"
    Item.DisplayValue = System.Drawing.Image.FromFile("australia.bmp")
    .Add(Item)
 
    Me.C1TrueDBGrid1.Columns("Country").ValueItems.Translate = True
End With

C# コードの書き方

C#
コードのコピー
C1.Win.C1TrueDBGrid.ValueItemCollection v = this.c1TrueDBGrid.Columns["Country"].ValueItems.Values;
C1.Win.C1TrueDBGrid.ValueItem Item = new C1.Win.C1TrueDBGrid.ValueItem();
 
    Item.value = "CAN";
    Item.DisplayValue = System.Drawing.Image.FromFile["canada.bmp"];
    v.Add[Item];
 
    Item = new C1.Win.C1TrueDBGrid.ValueItem();
    Item.value = "UK";
    Item.DisplayValue = System.Drawing.Image.FromFile["uk.bmp"];
    v.Add[Item];
 
    Item = new C1.Win.C1TrueDBGrid.ValueItem();
    Item.value = "USA";
    Item.DisplayValue = System.Drawing.Image.FromFile["usa.bmp"];
    v.Add[Item];
 
    Item = new C1.Win.C1TrueDBGrid.ValueItem();
    Item.value = "JPN";
    Item.DisplayValue = System.Drawing.Image.FromFile["japan.bmp"];
    v.Add[Item];
 
    Item = new C1.Win.C1TrueDBGrid.ValueItem();
    Item.value = "AUS";
    Item.DisplayValue = System.Drawing.Image.FromFile["australia.bmp"];
    v.Add[Item];
 
    this.c1TrueDBGrid1.Columns["Country"].ValueItems.Translate = true;
関連トピック