0

enter code here

グリッドに 2 つのセルがある 1 つのセルの色と値を 0 で変更したい 他のセルに 0 より大きい値を入力したときに

    private void grdDetail_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        { 
            if (this.IsLoadComplete) 
              { 
                UpdateValueofQtyCell(e.ColumnIndex); 
              } 
       }
  private void UpdateValueofQtyCell(int index)
        {
            int cur_row = grdDetail.CurrentRow.Index;

            if (index == 1)
            {
                grdDetail[1, cur_row].Style.BackColor = Color.White;
                grdDetail[2, cur_row].Style.BackColor = Color.FromArgb(224, 224, 224);
                grdDetail[2, cur_row].Value = 0;
            }
           else  if (index == 1)
            {
                grdDetail[2, cur_row].Style.BackColor = Color.White;
                grdDetail[1 cur_row].Style.BackColor = Color.FromArgb(224, 224, 224);
                grdDetail[1, cur_row].Value = 0;
             }
        }
4

2 に答える 2

1

このコードを使用できます:

    for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
    {
        if (dataGridView1.Rows[i].Cells[0].Value.ToString() != "0")
        {
            dataGridView1.Rows[i].Cells[0].Style.BackColor = Color.Yellow;
        }
    }
于 2012-11-07T06:34:02.867 に答える
0

クラスレベルで以下の変数を作成します。

bool IsAnyGreaterThanZero = false;

次に、最初に以下の関数を呼び出して、セル値がゼロより大きいかどうかを通知します。

private void CheckForGreaterThanZero()
{
    for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
      {

         if ((int)dataGridView1.Rows[i].Cells[0].Value > 0)
            {
              IsAnyGreaterThanZero = true;
            }
      }
}

次に、以下の関数を呼び出して、値がゼロに等しいセルの色を変更します。

private void ChangeOtherCellColor()
 {
  if(IsAnyGreaterThanZero)
  {
    for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
      {
        if ((int)intdataGridView1.Rows[i].Cells[0].Value == 0)
        {
            DataGridViewCellStyle CellStyle = new DataGridViewCellStyle();
            CellStyle.BackColor = Color.Red;
            dataGridView1.Rows[i].Cells[0].Style = CellStyle;
        }
      }
   }


  }
于 2012-11-07T06:45:01.603 に答える