1

我试图找出让所有用户的列以默认顺序(从左到右)开始的最简单方法。

我尝试将它们设置在IList<T>我用来填充 DataSource 的地方,但这不起作用。

除了按照此页面上的说明手动设置每列之外,我还有其他选择 -->重新排序列

4

3 回答 3

1

请查看以下文档。

http://www.telerik.com/help/winforms/gridview-populating-with-data-tips-when-binding-to-custom-collections.html

您几乎可以定义列的外观。这是代码:

radGridView1.MasterTemplate.AutoGenerateColumns = false;
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("Name"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("Attributes"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("LastAccessTime"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("CreationTime"));
DirectoryInfo directory = new DirectoryInfo("C:\\");
FileSystemInfo[] filesInDirectory = directory.GetFileSystemInfos();
radGridView1.DataSource = filesInDirectory;

如您所见,我已设置不自动生成列。然后我定义我想要的列。然后只需绑定数据源。这会给你你想要的订单

如果这对你有用,请告诉我。

于 2013-06-07T18:02:05.723 回答
0

网格将根据对象中的字段读取并创建其列:

    class MyObj
    {
        public string Column2 { get; set; }
        public int Column1 { get; set; }
    }

上面的代码将首先在您的网格中添加 Column2 然后 Column1,而下面的代码将做相反的事情:

    class MyObj
    {
           public int Column1 { get; set; }
           public string Column2 { get; set; }
    }

DataTables 也是如此,它只是按照它们的顺序读取列。

要重新排序它们,您可以使用您已经发现的Move方法。

于 2013-06-06T05:59:45.320 回答
0

我在 VB.NET 上行走,我做了这样的事情..

dgv.Columns(Col4).DisplayIndex = 0
dgv.Columns(Col3).DisplayIndex = 1
dgv.Columns(Col2).DisplayIndex = 2
dgv.Columns(Col1).DisplayIndex = 3

在 C# 中你可以在这里找到它

于 2013-06-06T01:38:52.047 回答