2017-03-12 10 views
0
for (int i = 0; i < countriesCodes.Length; i++) 
      { 
       dataGridView1.ColumnCount = 2; 
       dataGridView1.Columns[0].Name = "Status"; 
       dataGridView1.Columns[1].Name = "Country"; 
       var countryName = codeToFullNameMap[countriesCodes[i]]; 
       string[] row = new string[] { "Ready", countryName }; 
       dataGridView1.Rows.Add(row); 
       DataGridViewLinkColumn dgvLink = new DataGridViewLinkColumn(); 
       dgvLink.UseColumnTextForLinkValue = true; 
       dgvLink.LinkBehavior = LinkBehavior.SystemDefault; 
       dgvLink.HeaderText = "Link Data"; 
       dgvLink.Name = "SiteName"; 
       dgvLink.LinkColor = Color.Blue; 
       dgvLink.TrackVisitedState = true; 
       dgvLink.Text = lines[i]; 
       dgvLink.UseColumnTextForLinkValue = true; 
       dataGridView1.Columns.Add(dgvLink); 
      } 
      this.dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
      dataGridView1.EnableHeadersVisualStyles = false; 
      dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor; 
      dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor; 

      dataGridView1.RowHeadersVisible = false; 
      dataGridView1.AllowUserToAddRows = false; 
      dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control; 


      dataGridView1.Columns[0].DefaultCellStyle.ForeColor = Color.Red; 

最後の行は、最初の列の下のセルに色をする必要がありますなぜdataGridView1の最初の列[0]セルに色付けすると、最初のセルに色付けされませんか?

dataGridView1.Columns[0].DefaultCellStyle.ForeColor = Color.Red; 

私はそれが赤のすべてのセルを色付けします1列に変更した場合。しかしそれがColumns [0]のとき、Statusの下の最初のセル(スクリーンショット内)はまだ黒です。

Still black

単語準備最初の単語の準備状況の下では黒です。なぜそれが色づいていないのかも分かりません。私は列のの下にあるセルの色を付けると、すべてのセルが色付けされますが、列内の[0]の下にある色を付けたいとします。

+1

、役立ちますか? –

+1

コードの順番はかなり一般的に破られています。これはコードが既定のセルスタイルを変更したために間違っていた* *後に既に行を追加しました。したがって必然的に最初の行は古いセルスタイルを使用しました。このコードの多くは、DGVを構成するfor(;;)ループの前に移動する必要があります。 –

答えて

2

選択したセルをcellに移動すると、赤色forecolor。これら2つの行は選択色をオーバーライドします。混乱を避けるためにそれらにコメントするか、論理的なものを与えてください。

dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor; 
dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor; 

編集1:あなたはについてのコメント問題については

、透明それらを設定します。

dataGridView1.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.Transparent; 
dataGridView1.DefaultCellStyle.SelectionForeColor = System.Drawing.Color.Transparent; 

それが選択されているので、希望は多分

+0

この2行のコメントは私の質問の問題を解決するが、私はそれをクリックしたように、この最初のセルが選択されていることを意味する前に私の問題を引き起こす。その理由は、ハイラインを削除する唯一のワーキングソリューションだったので、私はこの2行を追加しました。ハイライトは戻っていますが、別のセルをクリック/選択すると赤色になります。 –

+0

編集@DanielHalfoni – Berkay

+0

を参照してください。今、最初のセルは空白ですが、それをクリックすると、それが選択されます。テキストが内部に表示されますが、赤ではありません。 –

関連する問題