2016-10-04 8 views
0

こんにちは、私は2つのセルを比較したいと思います。 Cell1がcell2より大きい場合、カラーセルは緑色になります。ここで DataGridViewのセルの値が別のセルより大きい場合

は私のコードです:セル整形でのDataGridView

foreach (DataGridViewRow row in this.dataGridView1.Rows) 
     { 
      if (row.Cells[3].Value.ToString() > (row.Cells[4].Value.ToString())) 
      { 
       row.Cells[3].BackColor = Color.PaleGreen; 
      } 

におけるしかし、私は2つのエラーを取得:最初の行には演算子「>」タイプ「文字列」と「文字列」のとでオペランドに適用することはできません2行目のSystem.Windows.Forms.DataGridViewCellに 'BackColor'の定義がなく、 'System.Windows.Forms.DataGridViewCell'型の最初の引数を受け入れる拡張メソッド 'BackColor'はありません

答えて

0

これらのエラーの両方を覚えていれば動作するはずです.ToStringなし.Valueの()を使用

が有効です。セル値を文字列にキャストしていますが、数値として比較したい場合は数値にする必要があります。また、BackColorはセルのスタイルプロパティにあります。

foreach (DataGridViewRow row in this.dataGridView1.Rows) 
{ 
    double value1; 
    double value2; 
    if(!double.TryParse(row.Cells[3].Value.ToString(), out value1) || !double.TryParse(row.Cells[4].Value.ToString(), out value2)) 
    { 
     // throw exception or other handling here for unexcepted values in cells 
    } 
    else if (value1 > value2) 
    { 
     row.Cells[3].Style.BackColor = Color.PaleGreen; 
    } 
+0

エラーのみ割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式が – user6894907

+0

は申し訳ありませんが、そのコードに小さな構文エラーを修正ステートメントとして使用することができます... – rmc00

+0

:だから、あなたのコードはより次のようになります。私はこの行にこのエラーがあります:else(value1> value2); – user6894907

0

文字列をint、double、long、decimal、または他の任意の数値に変換します。

現在、2つの文字列を数字のように比較しようとしています。 jが正しく

関連する問題