none
データグリッドで条件に一致した行のみ色(フォントor背景色)を付けたいんです・・・ RRS feed

  • 質問

  • 初心者ではありますが、Visual Studio 2005 C#で開発をしております。


    データグリッド内の条件に一致した行(複数行あり)のみに色付け(フォントor背景色)したいのですが、どなたかご存知の方はいらっしゃいませんか?

    Windows XP Pro
    Visual Studio 2005 C#

    2007年4月10日 15:06

すべての返信

  • DataGridView ではなく DataGrid のことですね?(System.Windows.Forms)
    検索したら、次のサイトに方法が書いてありました。

    [DOBON.NET] DataGrid内の特定のセルの色を変える
    <http://dobon.net/vb/dotnet/datagrid/coloredcell.html>

    ただ、もし過去のしがらみがない場合は、DataGridView を使われる方がよいと思います。
    違いは以下のサイトに書いてありました。
    DataGridView であれば、CellFormatting イベントで簡単にできます。

    Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて 
    <http://msdn2.microsoft.com/ja-jp/library/ms171628(VS.80).aspx>

    2007年4月11日 1:26
  • フォントや背景色などの変更方法は、DataGridView1.Rows[index].DefaultCellStyle.BackColor  プロパティ、その他、必要に応じたプロパティの値を設定して下さい。

     

    条件一致の方法も不明ということでしたら、もう少し詳細な情報を記述していただいた方が良いかもしれません。

    2007年4月11日 1:31
  • dataTable1 = dataSet1.Tables.Add("GridDataTable1");
      DataColumn dataClumn1 = dataTable1.Columns.Add("列1");
      DataColumn dataClumn2 = dataTable1.Columns.Add("列2");
      DataColumn dataClumn3 = dataTable1.Columns.Add("列3");

       ・

       ・

       ・

      <略>

       ・

       ・

       ・

    dgTableStyle.GridColumnStyles.Add(dgColumnStyle1);
      dgTableStyle.GridColumnStyles.Add(dgColumnStyle2);
      dgTableStyle.GridColumnStyles.Add(dgColumnStyle3);

    dgTableStyle.AlternatingBackColor = Color.FromArgb(240, 240, 240);

    dataGrid1.SetDataBinding(dataSet1, dataTable1.TableName);

     

    dataGrid1.SetDataBinding(dataSet1, dataTable1.TableName);
      dataGrid1.Select(0);

     

    と、現在記述しており偶数行の背景は色(薄いグレー)がついていますが、例えば"列1"の値が負(-)の場合はフォントか背景色をとか黄色に変更したく考えています。

    2007年4月11日 4:12
  • DataGridView ではなく、DataGridだったのですね。

    僕が投稿している時に、TH01さんが丁度投稿していたので気づきませんでした。

     

    DataGridは僕も使ったことがないのですが、TH01さんのリンク先を見ると、DataGridTextBoxColumn クラスを継承し、Paintメソッドをオーバーライドしたクラスを自作し、そのオブジェクトを列のスタイルに追加することで実現できると書いてあります。

     

    この方法では駄目なのですか?

    2007年4月11日 7:34