2

DataGridView.cs ファイルをコピーして任意のプロジェクトにドロップできるようにしたいカスタム コントロールを継承しています。から移動することができないコードが 1 つありMain.csますDataGridView.cs。ただし、次のとおりです。

private void Main_Load(object sender, EventArgs e)
{
    dgv.Sort(dgv.Columns[0], ListSortDirection.Ascending);
    dgv.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
}

これは私が試したことです:

class MyDataGridView : DataGridView
{
    protected override void InitLayout()
    {
        base.InitLayout();
        Sort(Columns[0], ListSortDirection.Ascending);
        Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
    }

    // Lots of methods snipped
}

プログラムはすぐに をスローInvalidOperationExceptionしますSort():

DataGridView コントロールは、並べ替える IBindingList オブジェクトにバインドする必要があります。

このコードを に移動するにはどうすればよいDataGridView.csですか?

4

1 に答える 1

1

これが私がやった方法です:

class MyDataGridView : DataGridView
{
    public MyDataGridView()
    {
        base.DataBindingComplete += Sort;
    }

    public void Sort(object sender, EventArgs e)
    {
        Sort(Columns[0], ListSortDirection.Ascending);
        Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
    }
}
于 2013-02-07T07:44:59.420 に答える