V17.1列宽的问题
我希望下拉框的宽度和第一列宽度调整同步,可在SpdCol_ColumnWidthChanged事件中,取得的第一个单元格的宽度是上次调整第1列宽度,而不是当次调整第1列的宽度。Private Sub SpdCol_ColumnWidthChanged(sender As Object, e As FarPoint.Win.Spread.ColumnWidthChangedEventArgs) Handles SpdCol.ColumnWidthChanged
Dim Rct As System.Drawing.Rectangle
If e.View.ActiveSheetIndex = 2 Then
Rct = SpdCol.GetCellRectangle(0, 0, 0, 0)
CmbYDE.Left = SpdCol.Left + Rct.Left
CmbYDE.Width = Rct.Width
CmbYDE.Top = SpdCol.Top + Rct.Top - CmbYDE.Height
End If
End Sub
我没明白你要干什么,下拉框的宽度本身就是撑满整列的
你具体是要什么效果呢
本帖最后由 regarmy 于 2024-7-23 12:00 编辑
Richard.Ma 发表于 2024-7-23 11:42
我没明白你要干什么,下拉框的宽度本身就是撑满整列的
你具体是要什么效果呢
我需要在标题行加个下拉框,下拉框的宽度要和列的宽度调整保持动态一致,不过我在ColumnWidthChanged事件中把CmbYDE.Width = Rct.Width改为CmbYDE.Width = CInt(e.View.Sheets(2).Columns(0).Width)解决了。而GetCellRectangle方法在ColumnWidthChanged事件中取得的单元格宽度不是实时的。 我没太明白为什么你要用GetCellRectangle,实际上在事件中拿到列index,然后
直接获取列宽就行的吧,我测试下来获取到的就是改变后的列宽
fpSpread1.ActiveSheet.Columns.Width; Richard.Ma 发表于 2024-7-25 11:35
我没太明白为什么你要用GetCellRectangle,实际上在事件中拿到列index,然后
直接获取列宽就行的吧,我测 ...
是的,已经解决了,用GetCellRectangle是不光取得列宽,主要还需要取得高,不过已经测试GetCellRectangle取得的尺寸数据不是实时的了。 本帖最后由 Richard.Ma 于 2024-7-25 17:51 编辑
好的,高度现在还有问题吗?按理说,这个事件并不会引起高度变化,所以不至于高度取的不对
页:
[1]