質問

C#Foreachループのcontinueステートメントに問題があります。

datagridviewに空のセルがあるかどうかを確認し、ある場合は、値の出力をスキップして次のセルを確認します。

ヘルプは大歓迎です。

コードは次のとおりです:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (cell.Size.IsEmpty)
        {
            continue;
        }
        MessageBox.Show(cell.Value.ToString());
    }
}
役に立ちましたか?

解決

さて、現在、セルのサイズがゼロかどうかを確認しています。グリッドでは、列のすべてのセルが同じ幅を持ち、行のすべてのセルが同じ高さを持ちます(通常、とにかく)。

セルのに基づいて確認したい。例:

if (cell.Value == null || cell.Value.Equals(""))
{
    continue;
}

" empty"の他の表現のためにこれを微調整します興味のある値。たくさんある場合は、このための特定のメソッドを記述し、チェックで呼び出すことができます。

if (IsEmptyValue(cell.Value))
{
    continue;
}

他のヒント

ここでcontinueキーワードを使用する必要はありません。これを実行するだけです:

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells)
    {
        if (!cell.Size.IsEmpty) MessageBox.Show(cell.Value.ToString()); // note the ! operator
    }
}

また、セルのサイズが空かどうかを確認しています。これは本当にあなたがしたいことですか?

どのようなエラーが発生していますか?

セルの値がサイズではなく空であるかどうかを確認しませんか?

if(String.IsNullOrEmpty(cell.Value.ToString()))
    continue;

i cell [1]データのみを読み取りたい... olny

foreach (DataGridViewRow row in this.dataGridView1.Rows)
{                            
    foreach (DataGridViewCell cell in row.Cells[1])
    {
       if (cell[1].Value == null || cell.Value.Equals(""))
{
    continue;
}

        MessageBox.Show(cell[1].Value.ToString());
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top