簡體   English   中英

如何更改數據網格視圖中的按鈕顏色?

[英]How can i change the buttons color in the data grid view?

(我為英語錯誤感到抱歉)您好,我正在嘗試通過datagridview內的按鈕更改顏色。 我已經用來自sql Server的數據喂了dgv,它工作得很好。 我得到了我需要的所有數據。 然后我在索引[0]上為網格中的每一行添加了按鈕,以打開用於編輯目的的第二個窗口(也可以正常工作)。 但我也希望按鈕可以單獨更改顏色。 我有一列Index [5],稱為“狀態”,可能有3種不同的類型:“活動”,“過期”和“過期”。 “ if cell ='active'”有效,如果正確,則進行識別。 但是不起作用的是變色代碼。

我已經嘗試過安靜一些事情,並浪費了一整天。 我嘗試了“ row.Cells [0] .Style.BackColor = Color.Green;” 和ForeColor,將Color.Green更改為System.Drawing.Color.Green。 嘗試每次更改某些內容時刷新一次,如果完成則僅刷新一次。 我將代碼縮短為僅活動狀態,並嘗試僅使用活動狀態的testdata,這也不起作用。 我嘗試使用調試器,但憑我的一點知識卻找不到任何東西。 我嘗試了“dgvAlleAnträge.Rows[row.Index] .Cells [5] .Style.BackColor = Color.Green;” 並將按鈕更改為每種“扁平”樣式,因為有人說這可行。

    `private void AlleAntraege_Load(object sender, EventArgs e)
    {

        try
        {
            string con = "Data Source=" + Properties.Settings.Default.Server_Name + "; Initial Catalog=" + Properties.Settings.Default.Name_Of_DB + ";Integrated Security=" + Properties.Settings.Default.Integrated_Security;
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(con);
            SqlConnection sqlconn = new SqlConnection(builder.ToString());
            string sqlquery = Properties.Settings.Default.sqlquery;
            SqlCommand sqlcomm = new SqlCommand("SELECT TOP 50" + sqlquery, sqlconn);
            sqlconn.Open();
            SqlDataAdapter sdr = new SqlDataAdapter(sqlcomm);
            DataTable dt = new DataTable();
            sdr.Fill(dt);
            dgvAlleAnträge.DataSource = dt;
            sqlconn.Close();

            dgvAlleAnträge.Columns[2].HeaderCell.Value = "Antrags ID";
            dgvAlleAnträge.Columns[4].HeaderCell.Value = "In-Pro-Nr.";
            dgvAlleAnträge.Columns[6].HeaderCell.Value = "Erstellungsdatum";
            dgvAlleAnträge.Columns[7].HeaderCell.Value = "Antragsteller UserID";
            dgvAlleAnträge.Columns[9].HeaderCell.Value = "IOW";
            dgvAlleAnträge.Columns[10].HeaderCell.Value = "Datum Von";
            dgvAlleAnträge.Columns[11].HeaderCell.Value = "Datum Bis";
            dgvAlleAnträge.Columns[12].HeaderCell.Value = "Status Mail";
            dgvAlleAnträge.Columns[13].HeaderCell.Value = "Beschreibung";
            dgvAlleAnträge.Columns[14].HeaderCell.Value = "Stellvertreter UserID";
            dgvAlleAnträge.Columns[15].HeaderCell.Value = "Anwender UserID";
            dgvAlleAnträge.Columns[16].HeaderCell.Value = "Anwender Vorname";
            dgvAlleAnträge.Columns[17].HeaderCell.Value = "Anwender Nachname";
            dgvAlleAnträge.Columns[18].HeaderCell.Value = "Anwender Email";
            dgvAlleAnträge.Columns[19].HeaderCell.Value = "Anwender Firma";
            dgvAlleAnträge.Columns[22].HeaderCell.Value = "Von System Name";
            dgvAlleAnträge.Columns[23].HeaderCell.Value = "Von System IP";
            dgvAlleAnträge.Columns[25].HeaderCell.Value = "Nach System Name";
            dgvAlleAnträge.Columns[26].HeaderCell.Value = "Nach System IP";
            dgvAlleAnträge.Columns[5].Visible = true;
            (dgvAlleAnträge.Columns[0] as DataGridViewButtonColumn).FlatStyle = FlatStyle.Flat;

            foreach (DataGridViewRow row in dgvAlleAnträge.Rows)
            {
                if (row.Cells[5].Value.ToString().Contains("aktiv") || row.Cells[5].Value.ToString().Contains("Aktiv"))
                {
                    (dgvAlleAnträge.Columns[0] as DataGridViewButtonColumn).FlatStyle = FlatStyle.Flat;
                    row.Cells[0].Style.BackColor = Color.Green;
                }
            }
        }
        catch { }
    }

`

如果列“狀態” =“活動”中的單元格,我希望按鈕將背景色更改為綠色。

row.Cell[0].Style.BackColor = Color.Green; 不起作用。 您必須使用(DataGridView1.Columns[row.Index] as (DataGridViewButtonColumn).DefaultCellStyle.BackColor = Color.Green;然后,您的Button才能獲得所需的顏色。

暫無
暫無

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

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