2016-05-11 7 views
0

を受け付けません。コントロールは、白い背景と黒のテキストで表示されます。vb.netのリストビューは、私はこのコードが動作しない理由を理解していない色の設定

+0

データがすでにデータテーブルにある場合、そのデータをリストビューに表示するのはどうしてですか? DataTableをDGVのデータソースとして使用する。 1行のコードで、データのコピーはしません。それ以外の場合はreproできません – Plutonix

+0

datatableがありません。 rexはクエリから抽出したDataRowsのArrayListです。決して6または7以上の要素がありません。データテーブルのために過剰なものがあるようですが、私はそれを調べます。ありがとう。これはもちろん、DGVがこのリストビューよりも2つのカラー設定を制御できるようにすることを前提としています。 –

+0

ArrayListも古くなっています。クエリを実行すると、 'cmd.ExecuteReader'を使用してDTを記入することができ、db結果のための完璧なコンテナです。 DGVが必要とするすべての列が1行作成され、列データが表示されます。それは、ディスプレイを微調整するための泡立ちと味があります。 – Plutonix

答えて

0

BackColorプロパティとForeColorプロパティは、項目が選択されている場合は、あなたの最善の策は、リストビューでtrueにOwnerDrawするを設定し、項目を自分でペイントすることです無視されます。

Private Sub ListView1_DrawSubItem(sender As Object, e As DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem 
    If e.Item.Selected Then 
     Dim Brush As New SolidBrush(Color.SlateGray) 
     e.Graphics.FillRectangle(Brush, e.Bounds) 
     Brush.Dispose() 
    Else 
     Dim Brush As New SolidBrush(e.SubItem.BackColor) 
     e.Graphics.FillRectangle(Brush, e.Bounds) 
     Brush.Dispose() 
    End If 

    e.DrawText(TextFormatFlags.VerticalCenter) 
    e.DrawFocusRectangle(e.Bounds) 
End Sub 

Private Sub ListView1_DrawColumnHeader(sender As Object, e As DrawListViewColumnHeaderEventArgs) Handles ListView1.DrawColumnHeader 
    e.DrawDefault = True 
End Sub 
+0

Hmm。私はあなたの努力を感謝しますが、これはちょうどカップルの色のプロパティを設定するにはあまりにも多くのコードです。また、これは選択されているアイテムに関するものでもありません。私はすべてのエントリがそれらの色を持つことを望んでいました。しかし、ありがとう。 –

関連する問題