0

DataGridView があり、そこから抽出されたデータを操作する必要があります。行と列の数は事前にわかりません。マウスを使用してデータを選択する方法に依存する必要があります (スプレッドシートで行う方法と同様)。

私が使用しているコードは次のとおりです。

public double[] ExtractGridData(DataGridView grid)
    {
        int numCells = grid.SelectedCells.Count;
        double[] cellsData = new double[numCells];

            foreach (DataGridViewCell cell in grid.SelectedCells)
            {
                if (cell.Value != null)
                    cellsData[cell.RowIndex] = Convert.ToDouble(cell.Value);
            }
        return cellsData;
    }

1 つの問題は、値が格納される方法が選択の方向に依存することです。セル (0,0) が配列の最初の値であり、セル (0,1) が 2 番目の値であることを確認する方法はありますか?

最終結果を行と列の 2 次元マトリックスにしたい。そのため、列の数を見つけて、この配列を2次元の配列にすることを計画していました。そのため、配列内の各行または datagridview 内のセルの合計を見つけることができます。

4

1 に答える 1

0

結果(または選択したセル)を位置で並べ替える必要があります。例えば:

public double[] ExtractGridData(DataGridView grid)
        {
            int numCells = grid.SelectedCells.Count;
            double[] cellsData = new double[numCells];
            int[] cellsKeys = new int[numCells];
            int cnt = 0;
            foreach (DataGridViewCell cell in grid.SelectedCells)
            {
                if (cell.Value != null)
                {
                    cellsData[cnt] = Convert.ToDouble(cell.Value);
                    cellsKeys[cnt] = cell.RowIndex + cell.ColumnIndex * grid.ColumnCount;
                    cnt++;
                };

            }
            Array.Sort(cellsKeys, cellsData);
            return cellsData;
        }

キー作成プロセスを変更して、目的の順序にすることができます。選択位置に関する情報が必要ないことを本当に確信していますか?

于 2013-05-07T06:49:50.353 に答える