[英]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.