よろしくお願いいたします。
vb2008を勉強しております。
DataGridViewにデータを表示し、
横列の背景色の変更を考えております。
For i As Integer = 0 To .RowCount - 1
.Rows(i).DefaultCellStyle.BackColor = Color.Red
Next i
と記述しておりますが、背景色が変わりません。
RowsをCulumsに変えれば縦列の色は変わります。
AlternatingRowsDefaultCellStyle.BackColorを利用すれば横列でも色が変わることは確認できました。
http://oshiete1.goo.ne.jp/qa4495913.html
この方の質問を参考にLoad内に記述しております。
ちがう点は、
親フォームから子フォーム呼び出し、
子フォームのLoad内に記述しております。
<親Form>
子form.MdiParent = Me
子form.Show()
<子Form>
Loadイベント内にDataGridView.Rows(i).DefaultCellStyle.BackColor=~
としております。
いつ指定するかの問題と予想したのですが、アドバイスをお願いします。
お時間がありましたら、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
確かに、下記のコードを Form_Load に記述すると背景色が変更されないようですね。
この部分だけをコンストラクタ(Sub New)に記述することは出来ないのですか?
<子フォーム(Form2)のLoad内>
Using adapter As New SqlClient.SqlDataAdapter("SELECT * FROM tbl_TEST", My.Settings.dbConnectionString)
Dim myDataSet As New DataSet()
adapter.Fill(myDataSet)
DataGridView1.DataSource = myDataSet.Tables(0)
End Using
この回答への補足
korin_様ご回答ありがとうございます。
Sub New内にてDataGridViewを表示し、Load内にて背景色の変更を実行しましたところ、正しく表示できました。
実際にはDataGridViewの表示と背景色変更は同時に実行する為、
また、何度かDataGridViewの内容を更新する為、
dataGridViewLoad()でまとめてあります。
Private Sub dataGridViewLoad()
Using adapter As New SqlClient.SqlDataAdapter("SELECT * FROM tbl_TEST", My.Settings.dbConnectionString)
Dim myDataSet As New DataSet()
adapter.Fill(myDataSet)
DataGridView1.DataSource = myDataSet.Tables(0)
End Using
For i As Integer = 0 To DataGridView1.RowCount - 1
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.blue
Next i
End Sub
これをNewとLoadで2回実行すると背景色が変更されました。
どちから1回ではだめでした。
こういった表示する為に2回実行する事は悪いことなのでしょうか?
No.1
- 回答日時:
こんにちは。
こちらの環境では、提示されているコードで正常に動作しました。
デバッグで確認して欲しいのですが、DataGiedView.RowCountは正しく表示されていますか?
予想ですが、DataGridView.Rows(i).DefaultCellStyle.BackColor=~の記述の後に
DataGridView.DataSource を指定していませんか?
その場合は DataSource を指定した後に BackColor を変更するようにしてください。
それでも解決しない場合は、問題の切り分けをするために現象が再現出来る最小限のコードを提示してもらえますか?
この回答への補足
korin_様、ご回答ありがとうございます。
ご指摘頂きました件ですが、
DataGiedView.RowCountは正しく表示されます。
DataGiedView.(0, i).Valueでも中身は表示されます。
また、
DataGridView.DataSourceの後に、.BackColor指定を行っております。
SDIにすれば色は変わるのは確認できております。
<親フォームのLoad内>
Me.IsMdiContainer = True
Dim f2 As New Form2
f2.MdiParent = Me
f2.Show()
<子フォーム(Form2)のLoad内>
Using adapter As New SqlClient.SqlDataAdapter("SELECT * FROM tbl_TEST", My.Settings.dbConnectionString)
Dim myDataSet As New DataSet()
adapter.Fill(myDataSet)
DataGridView1.DataSource = myDataSet.Tables(0)
End Using
For i As Integer = 0 To DataGridView1.RowCount - 1
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.blue
Next i
とすると色が変更されません。
現状では、Form2上のボタン押下にて
For i As Integer = 0 To DataGridView1.RowCount - 1
DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.blue
Next i
これを実行することで逃げております。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
DataGridViewで指定列の背景色の変更
その他(プログラミング・Web制作)
-
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
-
4
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
5
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
-
6
他のデータベースとのテーブル結合
SQL Server
-
7
Hideについて(.NET)
Visual Basic(VBA)
-
8
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
9
チェックボックスを操作できないようにしたいです VB.NET
Visual Basic(VBA)
-
10
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
11
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
12
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
13
CellEnterイベント仕様について
Visual Basic(VBA)
-
14
VBの画面サイズについて
Visual Basic(VBA)
-
15
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
16
コンボボックスの三角を一時的に消す方法。
Visual Basic(VBA)
-
17
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
18
GridViewでハイライトを使用しない方法
Visual Basic(VBA)
-
19
DateTimePickerに値を入れたいのですが…
Visual Basic(VBA)
-
20
DataGridViewのセル編集完了後に値を設定するには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAのユーザーフォームの...
-
モーダルフォームとモードレス...
-
Microsoft Formsの「個人情報や...
-
VB6.0のフォーム間の関数呼び出...
-
Access-VBAのPublic変数につい...
-
クリックイベントなのに、2回ク...
-
ユーザーフォームを表示中にシ...
-
Form_Load と Form_Activate の...
-
タスクバーにフォーム名を表示...
-
Access VBA コントロールの参照...
-
フォームのテキストボックスな...
-
ACCESSのフォーム、開くんです...
-
C#で起動時のフォームを非表示...
-
Accessで、一つのフォーム画面...
-
Excel VBA ユーザーフォーム 複...
-
ACCESSでストップウォッチの作成
-
モードレスでユーザーフォーム...
-
VBAでユーザーフォームを再表示...
-
アクセスのUserFormにはInitial...
-
①ExcelVBAでカレンダーを作り、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
エクセルVBAのフォームを最...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
モーダルフォームとモードレス...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
フォームウィンドウを最前面に...
-
VBA(エクセル)のユーザー...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
'ユーザーフォーム右上隅の[×...
-
MSGBOXのフォント大きさ変更
-
フォームのテキストボックスな...
-
Accessで、一つのフォーム画面...
おすすめ情報