テキストからテキストへの変換の指定と同じ方法で、テキストから画像への変換を行うことができます。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;
|
|