2012-03-15 20 views
0

すべてのセルを繰り返し処理するコードがありますどのようにして各4x4セルを異なる色にすることができますか?データグリッドを同じ矩形に分割する方法

int c = ran.Next(1, 5); 

for (int i = 0; i < box_width; i++) 
{ 
    for (int j = 0; j < box_height; j++) 
    { 
     switch (c) 
     { 
      case 1: 
       MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.Yellow; 
       break; 
      case 2: 
       MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.LightGray; 
       break; 
      case 3: 
       MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.LightBlue; 
       break; 
      case 4: 
       MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.Blue; 
       break; 
     } 
    } 

} 

このコードは、ランダムに選択された色ですべてのグリッドを埋める:

は、ここに私のコードです。私はそれを別の色のX X X次元に分割したい。

答えて

1
int c = ran.Next(1, 5); 

for (int i = 0; i < box_width; i += 2) 
{ 
    for (int j = 0; j < box_height; j += 2) 
    { 
     Color cellColor; 

     switch (c) 
     { 
      case 1: 
       cellColor = Color.Yellow; 
       break; 
      case 2: 
       cellColor = Color.LightGray; 
       break; 
      case 3: 
       cellColor = Color.LightBlue; 
       break; 
      case 4: 
       cellColor = Color.Blue; 
       break; 
     } 

     MyClass.grid.Rows[j].Cells[i].Style.BackColor = cellColor; 
     MyClass.grid.Rows[j].Cells[i+1].Style.BackColor = cellColor; 
     MyClass.grid.Rows[j+1].Cells[i].Style.BackColor = cellColor; 
     MyClass.grid.Rows[j+1].Cells[i+1].Style.BackColor = cellColor; 
    } 
} 

ありがとうこれはbox_widthとbox_heightがあなたのDataGridViewでの行とセルの数と同じであると仮定しています。

それはあなたのために働くかどうか私に教えてください、私はそれをテストしていないが、それは私の頭の中で正しいと思われた。

ただし、セルが偶数倍の倍数でない場合は、例外がスローされます。彼らは常に4x4の倍数になると思いますか?そうでない場合は、エラーチェックを追加する必要があります。

+0

これは素晴らしい動作します。どのようにすべての画面に収まるようにするには?例えば、私の画面解像度が私に異なる数のセルを与え、最後の列には1つだけ残っていて2つではありませんか?私はそれだけでもペイントできますか? –

関連する問題