PSHlujiasong 发表于 2016-3-18 10:41:47

固定列

Alice 发表于 2016-3-17 14:35
1.这是设计。
ShowIndicator是true的时候,RowHeaderCell前会有一个标记,所以序号的位置是要给标记留出位 ...

谢谢版主的回答。
请问multirow里面怎么设置固定列,横向滚动条拖动的时候,左边一部分列保持不动,只拖动右边列,Frozen属性好像只提供了get方法,不能对其进行设置
还有一个需求,可以把multirow整列无效化吗,我现在是循环每一行,把每一行的该列都设为无效化来实现的,有不用循环直接设置的方法吗

Alice 发表于 2016-3-18 14:27:02

1.有FreezeLeftCellIndex/FreezeLeftCellName/FreezeRightCellIndex/FreezeRightCellName属性可以设置。

2.之前已经提过了,MR没有列的概念,凡和列有关的,就从模板Template上单元格Cell的角度去考虑就可以了。
将设计器里的单元格的Enable设置为false,因为行是对模板单元格的叠加,所以每一行的这个单元格都是disable。
如果是代码,就是获取到模板上的cell,然后设置enable为false。
如:
this.gcMultiRow1.Template.Row.Cells.Enabled = false;

zgblxy 发表于 2019-6-21 09:44:31

Alice 发表于 2016-3-18 14:27
1.有FreezeLeftCellIndex/FreezeLeftCellName/FreezeRightCellIndex/FreezeRightCellName属性可以设置。

...

但是在最新的multirow中像图中代码那样实现不了功能。

zgblxy 发表于 2019-6-21 09:45:41

Alice 发表于 2016-3-18 14:27
1.有FreezeLeftCellIndex/FreezeLeftCellName/FreezeRightCellIndex/FreezeRightCellName属性可以设置。

...

现在this用不了了。:loveliness:您还能看见吗,过了这么长时间

Richard.Ma 发表于 2019-6-21 16:12:35

可以参考下面的代码

Public Sub New()
    InitializeComponent()



    Dim gcMultiRow = New GcMultiRow() With { _
      Key .Width = 500 _
    }
    Me.Controls.Add(gcMultiRow)



    Dim template__1 = Template.CreateGridTemplate(10)



    For i As var = 0 To 9
      template__1.Row.Cells(i).DataField = "column{i}"
    Next



    Dim dataTable = New DataTable()
    For i As var = 0 To 9
      dataTable.Columns.Add(New DataColumn("column{i}", GetType(String)))
    Next
    For i As var = 0 To 9
      Dim row = dataTable.NewRow()
      For j As var = 0 To 9
            row("column{j}") = "({i} , {j})"
      Next
      dataTable.Rows.Add(row)
    Next



    gcMultiRow.Template = template__1
    gcMultiRow.DataSource = dataTable




    gcMultiRow.FreezeLeftCellIndex = 1
    gcMultiRow.FreezeRightCellIndex = 9
End Sub

页: [1]
查看完整版本: 固定列