Copyright © GrapeCity inc. All rights reserved.
True DBGrid for WinForms
チュートリアル11: スタイルを使って関連データを強調表示する
チュートリアル > チュートリアル11: スタイルを使って関連データを強調表示する

このチュートリアルでは、グリッド内の値に依存する行スタイルを作成して、グリッドの行を強調表示するように変更する方法を学びます。 True DBGrid では、スタイルの特性を作成し、それらを動的に行に適用するには、FetchRowStyle イベントを使用します。

以下の手順を実行します

  1. チュートリアル10: セル内ビットマップを使ってユーザーインタフェースを強化する で使用したプロジェクトから始めます。
  2. フォームにラジオボタンを3つ追加します。RadioButton1 は見込み顧客に、RadioButton2 は業者に、RadioButton3 はグリッドのリセットにそれぞれのキャプションを変更します。次のようなフォームを作成します。
  3. Form1 の一般セクションに次の宣言を追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Dim bflag As Integer
    

    C# コードの書き方

    C#
    コードのコピー
    int bflag;
    
  4. Button1Click イベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    ' 見込み顧客。
    Me.C1TrueDBGrid1.FetchRowStyles = True
    bFlag = 1
    Me.C1TrueDBGrid1.Refresh()
    

    C# コードの書き方

    C#
    コードのコピー
    // 見込み顧客。
    this.c1TrueDBGrid1.FetchRowStyles = true;
    bFlag = 1;
    this.c1TrueDBGrid1.Refresh();
    
  5. Button2Click イベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    ' 販売業者
    Me.C1TrueDBGrid1.FetchRowStyles = True
    bFlag = 2
    Me.C1TrueDBGrid1.Refresh()
    

    C# コードの書き方

    C#
    コードのコピー
    // 販売業者
    this.c1TrueDBGrid1.FetchRowStyles = true;
    bFlag = 2;
    this.c1TrueDBGrid1.Refresh();
    
  6. Button 3Click イベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    ' グリッドをリセットします。
    Me.C1TrueDBGrid1.FetchRowStyles = False
    Me.C1TrueDBGrid1.Refresh()
    

    C# コードの書き方

    C#
    コードのコピー
    //グリッドをリセットします。
    this.c1TrueDBGrid1.FetchRowStyles = false;
    this.c1TrueDBGrid1.Refresh();
    
  7. FetchRowStyle イベントに次のコードを入力します。このコードは、クリックイベント内の FetchRowStyle プロパティの設定に連動します。 FetchRowStyleTrue に設定されている場合は、セルの再描画が必要になると、FetchRowStyle イベントが発生します。これにより、bflag フラグの整数値に基づいて、行スタイルが適用されます。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Private Sub C1TrueDBGrid1_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1TrueDBGrid1.FetchRowStyle
     
        If bFlag = 1 And Me.C1TrueDBGrid1 (e.Row,"CustType") = 1 Then
            Dim fntFont As New Font(e.CellStyle.Font.Name, e.CellStyle.Font.Size, FontStyle.Bold)
            e.CellStyle.Font = fntFont
            e.CellStyle.ForeColor =    System.Drawing.Color.Blue
        End If
     
        If bFlag = 2 And Me.C1TrueDBGrid1 (e.Row, "CustType") = 4 Then
            e.CellStyle.ForeColor = System.Drawing.Color.White
            e.CellStyle.BackColor = System.Drawing.Color.Red
        End If
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    private void C1TrueDBGrid1_FetchRowStyle(object sender,  C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs e) 
    {
        if (bFlag == 1 && (int)this.c1TrueDBGrid1 [e.Row, "CustType"] == 1 ) 
        {
            Font fntFont = new Font(e.CellStyle.Font.Name, e.CellStyle.Font.Size, FontStyle.Bold);
            e.CellStyle.Font = fntFont;
            e.CellStyle.ForeColor = System.Drawing.Color.Blue;
        }
     
        if (bFlag == 2 && this.c1TrueDBGrid1 [e.Row, "CustType"] == 4 )
        {
            e.CellStyle.ForeColor = System.Drawing.Color.White;
            e.CellStyle.BackColor = System.Drawing.Color.Red;
        }
    }
    

プログラムを実行し、次の動作を確認します。

これでチュートリアル 11 は終了です。