2017-03-24 19 views
0

C#で占有グリッドマッピング用のプログラムを作成しています。私はグリッドセルの色を変更したい。C#のグリッドセルの色を変更します。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Windows.Controls; 
using System.Windows; 


namespace gridappl 
{ 
    public partial class Form1 : Form 
    { 
     private Window mainWindow; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 


      // Create the application's main window 

      mainWindow = new Window(); 
      mainWindow.Title = "Grid Sample"; 
      // Create the Grid 
      Grid myGrid = new Grid(); 
      myGrid.Width = 600; 
      myGrid.Height = 600; 
      //myGrid.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; 
      //myGrid.VerticalAlignment = System.Windows.VerticalAlignment.Top; 
      myGrid.ShowGridLines = true; 


      // Define the Columns 
      ColumnDefinition colDef1 = new ColumnDefinition(); 
      ColumnDefinition colDef2 = new ColumnDefinition(); 
      ColumnDefinition colDef3 = new ColumnDefinition(); 

      myGrid.ColumnDefinitions.Add(colDef1); 
      myGrid.ColumnDefinitions.Add(colDef2); 
      myGrid.ColumnDefinitions.Add(colDef3); 


      // Define the Rows 
      RowDefinition rowDef1 = new RowDefinition(); 
      RowDefinition rowDef2 = new RowDefinition(); 
      RowDefinition rowDef3 = new RowDefinition(); 

      myGrid.RowDefinitions.Add(rowDef1); 
      myGrid.RowDefinitions.Add(rowDef2); 
      myGrid.RowDefinitions.Add(rowDef3); 



      // Add the Grid as the Content of the Parent Window Object 
      mainWindow.Content = myGrid; 
      mainWindow.Show(); 


     } 
    } 
} 

私は次のような多くのコマンドを使用してみました:

myGrid.Background = Brushes.Azure; 

myGrid.Background = System.Drawing.Brushes.Red; 

しかし、それでもまだ、プログラムはエラーをスローします。私たちの選択に従ってグリッドセルの色を変更するにはどうすればよいですか?

答えて

2
for (int i = 0; i < myGrid.Rows.Count; i++) 
{ 
     for (int j = 0; j < myGrid.Rows[i].Cells.Count; j++) 
     { 
      myGrid.Rows[i].Cells[j].Style.BackColor = /*color you want*/ 
     } 
} 

バックカラーを動的に塗りつぶすためにこれを試してください。

又はこの

myGrid.Background= new SolidColorBrush(Colors.Green); 
+1

2行目のコードを使用して、すべての行と列セルの背景色を入力してください。 –

+0

コードの2行目は、グリッドのすべてのセルを緑色にするうえでうまくいきます。どのようにグリッドの特定のセルに色付けするのですか? –

+0

グリッドにUI要素を追加する場所にコードを貼り付けることはできますか?だから、私はそれに基づいて解決策を提供することができます。 –

1

あなたはこのコードを試すことができます。

for (int i = 0; i < myGrid.Rows.Count; i++) 
      { 
       myGrid.Rows[i].Cells[/*Cell you want the color*/].Style.BackColor = /*color you want*/ 
      } 

ザ・ループのためのケースであり、あなたがすべての行を通過したいのか、あなただけ行うことができます

myGrid.Rows[/*specific row number*/].Cells[/*Cell you want the color*/].Style.BackColor = /*color you want*/ 

例:

myGrid.Rows[0].Cells[1].Style.BackColor = Color.Red; 
+0

を試みる私はこのような行を追加しました: "myGrid.Rowsを[4] .Cells [5] .Style.BackColor =アズール;"それでもまだこのプログラムはエラー –

+0

を投げます。なぜなら、この 'myGrid.Rows [4] .Cells [5] .Style.BackColor = Color.Azure'または' = Color.FromArgb(51,102,153)のようにする必要があるからです。 ); '私は色をどれだけ明るく、暗くするか調整することができます。 –

+0

エラーは 'Rows'で表示されます。 "グリッドには '行'の定義が含まれず、 'グリッド'タイプの最初の引数を受け入れる '行'の拡張メソッドはありません。 –

0
foreach (DataGridViewRow row in dgv_List.Rows) 
{ 
    if (intcolumncunt == 2) 
    { 
    if(Convert.ToInt32(row.Cells[2].Value.ToString()) > Convert.ToInt32(row.Cells[3].Value.ToString())) 
    { 
     row.DefaultCellStyle.BackColor = Color.Red; 
    } 
    } 
} 
関連する問題