如何在网格视图中为网格单元格着色?

时间:2012-08-20 13:11:48

标签: vb.net winforms datagrid datagridview

下面是我的代码,当我的网格源是数据库时,我一直在尝试为单元格着色但不确定如何使用“样式”属性。我是新手,因此难以入手。

一些网站或指针会有很大帮助。

我希望能够为某些背景单元格着色,或者为某些行或特定列着色......基本上所有颜色都相关。如何使用我当前的代码片段执行此操作?此外,我还可以了解更多信息。

LarsTech我试图将你添加到聊天中,但我没有足够的代表,所以我认为我不能与你联系。

Imports System.Data.SqlClient
Imports System.Collections.Generic

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim connectionString As String = "data source=SQst; database=MVar2; User ID=Wepp; Password=2010Live; Integrated Security=false;"

        Dim sql As String = "SELECT * FROM Prer"

        Dim connection As New SqlConnection(connectionString)

        Dim dataadapter As New SqlDataAdapter(sql, connection)

        Dim ds As New DataSet()

        connection.Open()

        dataadapter.Fill(ds, "Authors_table")

        connection.Close()

        DataGridView1.DataSource = ds

        DataGridView1.DataMember = "Authors_table"
    **DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.PaleGreen
    DataGridView1.Rows[3].Cells[1].Style.BackColor = Color.Red**    

    End Sub



    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Call PrintDGV.Print_DataGridView(DataGridView1)

    End Sub





End Class

我得到的错误:

Error   1   Property access must assign to the property or use its value.   
Error   2   Identifier expected.    
Error   3   Property access must assign to the property or use its value.   
Error   4   Identifier expected.    

我试过了:         DataGridView1.Rows(0).Cell(0).Style.BackColor = Color.Red

我得到1个错误:

Error   1   'Cell' is not a member of 'System.Windows.Forms.DataGridViewRow'.   

编辑:在浏览网页后,我使用以下代码为所选单元格着色:

DataGridView1.Item(4, 5).Style.BackColor = Color.Red

然而,这不会对行或列进行着色,因此我仍然希望使这些内容有效。

2 个答案:

答案 0 :(得分:3)

有几种不同的方法可以做到这一点。我相信currentcell指的是当前的活动单元格,因此在填充网格后根据该单元格进行着色将不会产生任何结果。

有几种方法可以做到:

c#:
For rows/cells:
dataGridView1.Rows[RowNumber].DefaultCellStyle.BackColor = Color.PaleGreen;
dataGridView1.Rows[RowNumber].Cells[1].Style.BackColor = Color.Red;

for columns:
dataGridView1.Columns[ColumnNumber].DefaultCellStyle.BackColor = Color.Black;


VB:
DataGridView1.Rows(0).DefaultCellStyle.BackColor = Color.Green
DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.Blue

这两种方法都会将颜色应用于单元格背景。使用一些逻辑来控制如何/哪些单元格/行被着色。

答案 1 :(得分:0)

您也可以在.aspx文件中明确地设置此值。链接是2.0版本的代码,但这仍然是兼容的。

MSDN