6

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());
    }
}
4

4 に答える 4

16

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

セルのに基づいてチェックしたい。例えば:

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

関心のある「空の」値の他の表現については、これを微調整します。たくさんある場合は、このための特定のメソッドを作成し、チェックで呼び出すことができます。

if (IsEmptyValue(cell.Value))
{
    continue;
}
于 2009-05-02T16:33:35.270 に答える
4

ここで 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
    }
}

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

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

于 2009-05-02T16:31:59.597 に答える
2

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

if(String.IsNullOrEmpty(cell.Value.ToString()))
    continue;
于 2009-05-02T16:32:12.667 に答える
1

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());
    }
}
于 2010-04-21T07:11:21.840 に答える