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

Country フィールドが簡単な符号で表されている次のグリッドを例にします。

この符号を正しい名前として表示するには、列のValueItemCollectionオブジェクトを使用して、自動データ変換を指定します。それには、設計時に、.NET のValueItemCollection エディタを使用するを使用します。

このエディタを使って ValueItemCollection オブジェクトに変更を加えると、列単位でデータ変換を指定できます。特定の列のデータ変換リストを構築するには、次の手順に従います。

  1. Visual Studio のプロパティウィンドウで、Columns コレクションの横にある省略符ボタンをクリックして、C1TrueDBGrid デザイナを使用するを開きます。
  2. 左ペインで、内容を変換する列を選択します。右ペインで、 ValueItems ノードを展開します。Values ノードの横の省略符ボタンをクリックすると、ValueItemCollection エディタを使用するが起動します。
  3. ValueItem オブジェクトを正しく設定したら、〈OK〉を選択して C1TrueDBGrid デザイナを使用するに戻ります。右ペインで、 ValueItems ノードの下の Translate プロパティを True に設定します。
  4. 左ペインで〈...〉ボタンをクリックすると、ValueItem オブジェクトが追加されます。右ペインで、各 ValueItem のValue および DisplayValue を指定します。ValueItem のテキストを入力する場合は、省略符ボタンを使用しません。このボタンは、DisplayValue にビットマップを入力するために使用します。
  5. OK〉 または 〈Apply〉 を選択して変更をコミットします。

プログラムが実行されると、Value 列のアイテムと一致する Country フィールドの値が、対応する DisplayValue エントリとして表示されます。たとえば、CAN はカナダになり、UK はイギリス になります。

基礎データベースには影響がないことに注意してください。データ値の表現だけが異なります。コードで同様の結果を得るには、次のようにします。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim v as C1.Win.C1TrueDBGrid.ValueItemCollection
v = Me.C1TrueDBGrid1.Columns("Country").ValueItems.Values
 
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("CAN","Canada"))
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("UK","United Kingdom"))
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("USA","United States"))
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("JPN","Japan"))
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("AUS","Australia"))
 
Me.C1TrueDBGrid1.Columns("Country").ValueItems.Translate = True

C# コードの書き方

C#
コードのコピー
C1.Win.C1TrueDBGrid.ValueItemCollection v = this.c1TrueDBGrid1.Columns["Country"].ValueItems.Values;
 
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("CAN","Canada"));
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("UK","United Kingdom"));
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("USA","United States"));
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("JPN","Japan"));
v.Add(new C1.Win.C1TrueDBGrid.ValueItem("AUS","Australia"));
 
this.c1TrueDBGrid1.Columns["Country"].ValueItems.Translate = true;
関連トピック