2011-04-13 45 views
12

使用C#的DataGridView我怎麼能:如何突出顯示DataGridView行或使其暫時發光?

  1. 高亮顯示一行
  2. 使行煥發暫時(去黃了幾秒鐘)
+0

暫時在本地,當您選擇該行或默認情況下。 – 2011-04-13 07:53:42

+0

你可以通過selectedrowstyle爲網格做1,但你打算通過**發光行暫時** ** – V4Vendetta 2011-04-13 07:59:07

+1

@克雷格,你忘了說**現在**。我看到你在我以前的評論後接受了9個答案。 – 2011-04-19 09:35:43

回答

0

您可以通過突出「N」行someDataGridView.Rows [n] .IsSelected = true;

0

您可以使用GridViewAutoFormat屬性。

16

爲了模擬用戶選擇某一行,使用

myDataGrid.Rows[n].IsSelected = true; 

如加布裏埃爾曾建議。

爲了暫時的顏色突出一個DataGridView控件中的行,設置DefaultCellStyle.BackColor屬性爲您選擇您感興趣的行的顏色,然後啓用System.Windows.Forms.Timer控制供你選擇的時間段。當計時器的Tick事件觸發時,禁用計時器並將行的DefaultCellStyle.BackColor恢復爲其原始顏色。

下面的簡短示例是針對具有名爲GlowDataGrid的DataGridView,名爲GlowTimer的計時器和名爲GlowButton的按鈕的WinForm應用程序。當點擊GlowButton時,DataGridView的第三行會暫時發黃色兩秒鐘。

private void Form1_Load(object sender, EventArgs e) 
    { 
     // initialize datagrid with some values 
     GlowDataGrid.Rows.Add(5); 
     string[] names = new string[] { "Mary","James","Michael","Linda","Susan"}; 
     for(int i = 0; i < 5; i++) 
     { 
      GlowDataGrid[0, i].Value = names[i]; 
      GlowDataGrid[1, i].Value = i; 
     } 
    } 

    private void GlowButton_Click(object sender, EventArgs e) 
    { 
     // set third row's back color to yellow 
     GlowDataGrid.Rows[2].DefaultCellStyle.BackColor = Color.Yellow; 
     // set glow interval to 2000 milliseconds 
     GlowTimer.Interval = 2000; 
     GlowTimer.Enabled = true; 
    } 

    private void GlowTimer_Tick(object sender, EventArgs e) 
    { 
     // disable timer and set the color back to white 
     GlowTimer.Enabled = false; 
     GlowDataGrid.Rows[2].DefaultCellStyle.BackColor = Color.White; 
    } 
+2

應該被選中而不是被選中 – eYe 2015-03-17 15:26:03

4

我的代碼,你

private void Form1_Load(object sender, EventArgs e) 
    { 
     Timer t = new Timer(); 
     t.Interval = 500; 
     t.Enabled = false; 

     dataGridView1.CellMouseEnter += (a, b) => 
     { 
      if (b.RowIndex != -1) 
      { 
       dataGridView1.CurrentCell = dataGridView1.Rows[b.RowIndex].Cells[0]; 
       dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Yellow; 
       dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionForeColor = Color.Black; 
       t.Tick += (c, d) => 
       { 
        dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Blue; 
        dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionForeColor = Color.White; 
        t.Enabled = false; 
       }; 
       t.Enabled = true; 
      } 
     }; 
     dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
     dataGridView1.Columns.Add("Col1", "Col1"); 
     dataGridView1.Columns.Add("Col2", "Col2"); 
     dataGridView1.Rows.Add("Row1", "Col1"); 
     dataGridView1.Rows.Add("Row1", "Col2"); 
     dataGridView1.Rows.Add("Row2", "Col1"); 
     dataGridView1.Rows.Add("Row2", "Col2"); 
     dataGridView1.Rows.Add("Row3", "Col1"); 
     dataGridView1.Rows.Add("Row3", "Col2"); 
     dataGridView1.Rows.Add("Row4", "Col1"); 
     dataGridView1.Rows.Add("Row4", "Col2"); 
    } 
+0

你有沒有得到你的答案。如果是,請分享它,它可能會幫助其他人 – 2011-04-21 01:24:49

0

使用像

gridLibrary.Rows(i).DefaultCellStyle.BackColor = Color.Yellow 

設置顏色,那麼你將需要 電網排序後重置顏色。

然後使用計時器在延遲後更改高光顏色。

gridLibrary.Rows(i).DefaultCellStyle.BackColor = Color.white 
+0

(i)應該是[i] C#問題 – David 2016-07-07 15:26:34

相關問題