4

小さな問題があります。並べ替え(列と昇順または降順)を保存して、プログラムの次の開始時にロードする必要があります。現在選択されている列を取得することは問題ありません。

    private int GetSortColumn()
    {
        DataGridViewColumn sortColumn = this.dataGridView.SortedColumn;
        if (sortColumn != null)
        {
            Properties.Settings.Default.sortingColumnSortMode = dataGridView.SortOrder;
            return sortColumn.Index;
        }
        else
            //error
            return -1;
    }

そして、私の設定でデータを保存します。このプロパティの設定も問題ありません。

    private void SetSortColumn(int indexOfColumn)
    {
        if (indexOfColumn != null && indexOfColumn != -1)
        {
            this.dataGridView.Sort(this.dataGridView.Columns[indexOfColumn], ListSortDirection.Descending);
        }
    }

ただし、昇順または降順のプロパティも保存して設定する必要があります。どうすればよいですか?dataGridView.SortedColumnを使用してListSortDirectionを取得する方法はありますか?または、dataGridViewが昇順または降順でソートされているかどうかを設定するためのより良い解決策はありますか?

ありがとう、あいさつ!レイジン

4

2 に答える 2

1

OK、SetSortColumn にスイッチを追加するだけで問題を解決できました。

    private void SetSortColumn(int indexOfColumn)
    {
        if (indexOfColumn != null && indexOfColumn != -1)
        {
            ListSortDirection listSort;
            switch (Properties.Settings.Default.sortingColumnSortMode)
            {
                case SortOrder.Ascending:
                    listSort = ListSortDirection.Ascending;
                    break;

                case SortOrder.Descending:
                    listSort = ListSortDirection.Descending;
                    break;

                default:
                    listSort = ListSortDirection.Descending;
                    break;

            }

            this.dataGridView.Sort(this.dataGridView.Columns[indexOfColumn], listSort);
        }
    }

多分それは他の人を助けるでしょう;)

于 2012-05-29T20:31:28.027 に答える