CanYou8 发表于 2015-9-11 10:49:00

C1DataGrid动态插入列,列序与样式问题

问题:在C1DataGrid中动态插入列时,如何让插入的列显示到指定的位置?如何设置插入的列的样式?
尝试:如下图,我在动态插入列时,总是显示在最后一列(红框中是动态插入的列,其余几项是原有的列)

iceman 发表于 2015-9-11 13:54:00

回复 1楼CanYou8的帖子

请设置 DataGridTextColumn 的 DisplayIndex 属性进行显示位置指定。

            DataGridTextColumn dc = new DataGridTextColumn();
            grid.Columns.Insert(1, dc);
            dc.DisplayIndex = 1;

CanYou8 发表于 2015-9-11 14:44:00

:hjyzw:我在“grid.Columns.Insert(1, dc); ”之前设置DisplayIndex报错,按您的方式放在后面就可以了。

请问,如果我想将此动态列设为红色,可以实现吗?

Alice 发表于 2015-9-14 09:30:00

回复 3楼CanYou8的帖子

可以通过LoadedCellPresenter事件实现。
假设动态添加的列名是"newColumn",那么改成红色的代码如下:
      void grid_LoadedCellPresenter(object sender, DataGridCellEventArgs e)
      {
            if (e.Cell.Column.Name=="newColumn")
            {
                e.Cell.Presenter.Background = Brushes.Red;
            }
      }

CanYou8 发表于 2015-9-14 11:50:00

:mj72:问题已解决,非常感谢!!

Alice 发表于 2015-9-14 13:50:00

回复 5楼CanYou8的帖子

不用客气。
此问题关闭,如果有新问题请开新帖。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢      http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: C1DataGrid动态插入列,列序与样式问题