- - PR -
DataGridでAlternatingBackColorが反映されない
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-07 14:10
VB2003Proを使用しています。
DataGridでAlternatingBackColorを指定し、 1行おきに色が変わるように設定したいのですが、うまくいきません。 DataGridTextBoxColumn の派生クラスを作成する必要があるのでしょうか? 現在は、Bottonのクリックイベントで以下のように設定しています。 データセット宣言 :Dim dataSet As DataSet = New DataSet データテーブル宣言 :Dim MeisaiTbl As DataTable テーブルスタイル宣言:Dim ts As New DataGridTableStyle カラムスタイル宣言 :Dim Column1 As New DataGridTextBoxColumn テーブルの作成 :MeisaiTbl = dataSet.Tables.Add("MEISAI") AlternatingBackColorを設定 MeisaiTbl.Columns.Add("Column1", Type.GetType("System.String")) データの作成、 テーブルスタイルのマッピング、 カラム毎に列幅の設定、 読み取り専用モードにする DataGrid1 に設定を反映(DataGrid1.SetDataBinding) | ||||||||||||||||
|
投稿日時: 2006-05-07 14:32
そんなことはないです。
関係ないですが、これ無意味じゃないですか?
使っていないようですから。
このあたりの具体的なソースを提示してください。 ミニマム コード的には、TableStyle の設定やカラムの列幅の設定、諸々は必要ないですよね? このあたりで関係のないものを紐付けていませんか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-05-07 14:40
関係ないかもしれませんが... タイミング的に AlternatingBackColor の設定はバインド直前が望ましいと思います。
ミニマム コード的には、こんな感じではないでしょうか? (試していませんが) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-05-07 20:23
早速の返答有難うございます。
>このあたりで関係のないものを紐付けていませんか? テーブルスタイルをtsとしているあたりが怪しいと思うのですが どのように直すべきか現在確認中です。 因みに現在のコードは以下のようになっております。 コード: -------------------------------------------- Dim dataSet As DataSet = New DataSet Dim MeisaiTbl As DataTable 'テーブルスタイル Dim ts As New DataGridTableStyle 'カラムスタイル 1列目 Dim Column1 As New DataGridTextBoxColumn 'テーブルの作成 MeisaiTbl = dataSet.Tables.Add("MEISAI") MeisaiTbl.Columns.Add("項目1", Type.GetType("System.UInt32")) 'データの作成 MeisaiTbl.Rows.Add(New Object() {1}) MeisaiTbl.Rows.Add(New Object() {2}) MeisaiTbl.Rows.Add(New Object() {3}) ' テーブル・スタイルの作成 'テーブル名のセット ts.MappingName = MeisaiTbl.TableName '列ヘッダによるソートを禁止 ts.AllowSorting = False 'カラム・スタイルの作成 'カラムのマッピング Column1.MappingName = MeisaiTbl.Columns(0).ColumnName '列見出しのセット Column1.HeaderText = "項目1" '列幅の設定 Column1.Width = 50 'DataGrid1 の見出しを表示,非表示 DataGrid1.CaptionVisible = True 'レコードセレクタの幅を変更 DataGrid1.RowHeaderWidth = 10 '読み取り専用モードにする DataGrid1.ReadOnly = True '背景の色を変更 DataGrid1.BackgroundColor = System.Drawing.Color.Pink 'テーブルスタイル/カラムスタイルの適用 'テーブルスタイルを追加 DataGrid1.TableStyles.Add(ts) '奇数行に色をつける DataGrid1.AlternatingBackColor = System.Drawing.Color.Red 'DataGrid1 に設定を反映 DataGrid1.SetDataBinding(dataSet, MeisaiTbl.TableName) -------------------------------------------- | ||||||||||||||||
|
投稿日時: 2006-05-07 20:32
TableStyles を使う場合、DataGridTableStyle.AlternatingBackColor を使ってください。 | ||||||||||||||||
|
投稿日時: 2006-05-08 21:26
ts.AlternatingBackColor
とすることで解決できました。 有難うございました。 |
1