簡體   English   中英

如何根據datagridview單元內的顏色代碼轉換或顯示顏色?

[英]how do i convert or display the color base on the color code inside the datagridview cell?

我只想在單元格的背景上顯示簡單的顏色?

在此處輸入圖片說明


如何顯示顏色,而不是至少顯示單元格背景顏色的顏色代碼? 順便說一句,我正在使用fullrowselect。


我的代碼加載數據庫

SuspendLayout();
        using (MySqlConnection conn = new MySqlConnection(myConnection))
        {
            //string cell = dataGridView3.CurrentCell.Value.ToString();
            conn.Open();
            string query = "SELECT productid,description,color,quantity,unitprice FROM deqor.tblproducts where category=?cat;";
            using (MySqlCommand cmd = new MySqlCommand(query, conn))
            {
                cmd.Parameters.AddWithValue("?cat", comboBox1.SelectedItem.ToString());
                try
                {
                    sda = new MySqlDataAdapter();
                    sda.SelectCommand = cmd;
                    datset = new DataTable();
                    sda.Fill(datset);
                    bsource = new BindingSource();


                    bsource.DataSource = datset;
                    dataGridView1.DataSource = bsource;
                    DataGridViewColumn column = dataGridView1.Columns[0];
                    column.HeaderText = "Code";
                    column.Width = 160;
                    DataGridViewColumn column1 = dataGridView1.Columns[1];
                    column1.HeaderText = "Brand";
                    column1.Width = 220;
                    DataGridViewColumn column2 = dataGridView1.Columns[2];
                    column2.HeaderText = "Color";
                    column2.Width = 100;
                    DataGridViewColumn column3 = dataGridView1.Columns[3];
                    column3.HeaderText = "Quantity";
                    column3.Width = 50;
                    DataGridViewColumn column4 = dataGridView1.Columns[4];
                    column4.HeaderText = "Price";
                    column4.Width = 50;

                    sda.Update(datset);
                    if (dataGridView1.RowCount < 1)
                    {
                        datset.Clear();

                        string row = "NO items found";
                        datset.Rows.Add(row);

                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("" + ex);
                }
            }
            conn.Close();

        }
        ResumeLayout();

您可以在CellFormatting事件期間設置顏色,請參見此處以獲取解釋

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    //Check if we're formatting the color column
    if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Color")
    {
        //Make sure there's a value set
        if (e.Value != null)
        {
            string colorCode = (string)e.Value;
            ColorConverter cc = new ColorConverter();
            e.CellStyle.BackColor = (Color)cc.ConvertFromString("#" + colorCode);
            //If you don't want the code to show
            e.Value = "";
            e.FormattingApplied = true;
        }
    }
}

您可以為列[2]中的每個單元格使用foreach ,並像這樣填充它:

dataGridView1.Rows[count].DefaultCellStyle.BackColor = (Color)ColorConverter.ConvertFromString("#FFDFD991");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM