よろしくお願いいたします。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Google Drive Google form を利用して 問い合わせフォームを作りたい 1 2022/04/25 14:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- 英語 丁寧な伺い(参加可否を促したい)英文を知りたいです。 2 2022/06/28 06:57
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
5
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
6
DataGridViewの桁数制限に関して
Visual Basic(VBA)
-
7
DataGridViewのフォーカス遷移について
Visual Basic(VBA)
-
8
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
9
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
10
DataGridView1のcellで計算
Visual Basic(VBA)
-
11
データバインドされたDatagridviewの列をコンボボックスにするには
Visual Basic(VBA)
-
12
データグリッド内の数値をカンマ区切りで表示
Visual Basic(VBA)
-
13
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
14
DataTableに特定のフィールドが存在するかどうか調べるには?
Visual Basic(VBA)
-
15
DataGridViewで指定したセルの値を取得
Visual Basic(VBA)
-
16
CellEnterイベント仕様について
Visual Basic(VBA)
-
17
DataGridViewでyyyy/MM/dd
Visual Basic(VBA)
-
18
DateTimePicker のEnable
Visual Basic(VBA)
-
19
【VB.NET】DataGridViewセルの十字キー移動ができません
Visual Basic(VBA)
-
20
DataGridViewで列、行、セルの選択
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームのテキストボ...
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
【VBAユーザーフォームで閉じる...
-
'ユーザーフォーム右上隅の[×...
-
テキストボックス入力データの...
-
VB6の _ExtentX, _ExtentY
-
Accessで、一つのフォーム画面...
-
VBAでユーザーフォームを再表示...
-
フォームのテキストボックスな...
-
モーダルフォームとモードレス...
-
Form_Load と Form_Activate の...
-
フォームウィンドウを最前面に...
-
MSGBOXのフォント大きさ変更
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
Accessのフォームでレコード移...
-
エクセルVBA フォーム上でOnkey...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
クリックイベントなのに、2回ク...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォーム上に現在日時...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
VBAでユーザーフォームを再表示...
-
【VBAユーザーフォームで閉じる...
-
MSGBOXのフォント大きさ変更
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
コントロールの存在確認
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
おすすめ情報