0

Winforms プロジェクトにグリッド ビューがあり、グリッドの各行をmethodX()別のクラス ライブラリ プロジェクトに渡したいと考えています。

私の質問は、渡す行のデータ型は何methodX()ですか?

Winforms プロジェクトから次のように渡そうとしました。

obj.methodX(gridview.Rows[i]);

クラス ライブラリ プロジェクトでは、methodx は次のように定義されます。

public void methodX(string[] gridviewRowData)
{

}

ここで使用する正しいデータ型を教えてください。

4

3 に答える 3

1

を渡しているのでgridview.Rows[i]、探しているメソッド シグネチャは次のとおりです。

public void methodX(DataGridView dataGridView) {

}

つまりDataGridView、インデックスの行をiメソッドに渡しています

于 2013-11-01T19:20:41.230 に答える
0

DataGridViewRowCollection ( http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrowcollection(v=vs.110).aspx ) を使用できます。datagridview の行を処理するコレクションです。

その後、rows["columnName"].value; で各セル情報にアクセスできます。以下に短い例を示します。

private void Form1_Load(object sender, EventArgs e)
    {
        //get the rows from the datagridview
        DataGridViewRowCollection rows = new DataGridViewRowCollection(dataGridView1);

        //and now call your method
        GetRowsInfo(rows);

    }

    //method that takes an argument of DataGridViewRowCollection type, iterates through all the rows and displays every cell content(generically speaking).
    public void GetRowsInfo(DataGridViewRowCollection dataRows)
    {
        foreach(DataRow row in dataRows)
        {
            Console.WriteLine(row["columnName"] + row["columnName"] + "...");


        }
    }
于 2013-11-01T19:36:42.530 に答える
0

この行で行っているのは、単一の行を渡す場合です。

obj.methodX(gridview.Rows[i]);

次に、methodX を次のようにする必要があります。

public void methodX(DataGridViewRow row)
{

}

または、@lauCosma の提案に従って、DataGridViewRowCollection を使用します。

または、DataGridView 全体を methodX に渡し、methodX 内の各行をループすることもできます。

obj.methodX(gridview);

public void methodX(DataGridView gridview)
{    
    foreach DataGridViewRow row in gridview.Rows)
    {
        //your code here
    }
}

または、DataGridView.SelectedRows プロパティを使用して、強調表示/選択された行コレクションだけを methodX に渡すこともできます。

于 2013-11-02T16:17:07.000 に答える