簡體   English   中英

使用ColorDialog更改dataGridViewCells的背景顏色

[英]Changing Background color of dataGridViewCells with a ColorDialog

所以我有一個dataGridView,我希望能夠選擇一個單元格並更改其顏色。 這是一項家庭作業,要求我們使用ColorDialog。 我在頂部有一個按鈕,它彈出一個ColorDialog可供選擇,並且我已經能夠成功地使用它來更改單元格的背景顏色,但是只能更改特定的單元格(剛剛測試(2,2))。 我希望它僅更改所選單元格的顏色。 如何讓ColorDialog知道當前選擇了哪個單元格? 我當前用於單擊實際按鈕的代碼是這樣的:

private void changeBGColorToolStripMenuItem_Click(object sender, EventArgs e)
{
    ColorDialog cd = new ColorDialog();
    cd.ShowDialog();
    dataGridView1.Rows[2].Cells[2].Style.BackColor = cd.Color;
}

就像我在測試(2,2)之前說過的那樣只是為了使其正常工作,它確實會更改該特定單元格。 我只想知道如何讓此函數知道我實際上選擇了哪個單元格(或者是否完全選擇了一個單元格!)。 如果有幫助,我也有一個CellBeginEdit和CellEndEdit函數。 謝謝!

關。 首先,我建議您使用以下語法檢查OK:

        if (ColorDialog .ShowDialog() == DialogResult.OK)
           dataGridView1.Rows[2].Cells[2].Style.BackColor = ColorDialog .Color;

或更短:

        if (ColorDialog .ShowDialog() == DialogResult.OK)
           dataGridView1[2][2].Style.BackColor = ColorDialog .Color;

要引用選定的單元格,請使用以下命令:

dataGridView1.SelectedCells[0]

這實際上是“第一個選定的單元格”。 因此,您應確保關閉多選功能或更改所有選定單元格的顏色。

所以要么

        if (ColorDialog .ShowDialog() == DialogResult.OK)
           dataGridView1.SelectedCells[0].Style.BackColor = ColorDialog 

要么

       if (ColorDialog .ShowDialog() == DialogResult.OK)
       {
           foreach (DataGridViewCell cell in DataGridView1.SelectedCells)
              cell.Style.BackColor = ColorDialog
       }

另外,在第一種情況下,你必須檢查是否有其實一個先選定單元格,即有選擇的細胞在首位,或參考將拋出一個錯誤。 檢查dataGridView1.SelectedCells.Length > 0 您決定將支票放在哪里。

暫無
暫無

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

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