Column Property (FieldItem)

The column in the grid in the Owner's generated template and optionally its FieldLayout.HeaderAreaTemplate where this Fields cells and labels should be placed.
Public Property Column As Integer
public int Column {get; set;}

This property is ignored if AutoArrangeCells does not resolve to 'Never'.

Note: In addition to the Column and Row properties, there are separate ColumnSpan and RowSpan properites. These settings determine that actual grid row and column for this Field's cells and labels.

Column, Row, ColumnSpan and RowSpan properties specify the logical location of the field in the layout of fields (label area and cell area). Field layout is comprised of a grid whose logical dimensions are automatically calculated based the visible fields and their Column/Row and ColumnSpan/RowSpan values. ColumnSpan and RowSpan specify number of logical cells the field occupies in the grid. By default each field occupies one cell. However you can set these properties to have a field occupy more than one logical cell. Column and Row properties determine the position of the field in the grid. Actual pixel dimentions of the fields are determined by their Width and Height properties. It's not necessary to set Width and Height properties as they are auto-calculated.

Note that in the case where a field occupies multiple logical columns, the pixel widths of the logical columns in the grid are not evenly distributed. If there are other fields that occupy the constituent logical columns individually, they will determine the pixel dimension of each individual logical column based on the field's Width setting or its auto-calculated width if that property is not set. Basically the field layout assigns pixel dimensions to logical columns based on the requirements of all the fields that occupy those logical columns to satisfy those fields's width requirements. Goal of the field layout is to ensure width requirements of the fields are met but any extra slack will not be distributed amongst logical columns evenly. This behavior will be evident in the following scenario. Field "A" has Row, Column, RowSpan and ColumnSpan values of 0, 0, 1, and 3 respectively and field "B" has these values as 1, 0, 1, 2, and field "C" has the valules as 1, 0, 1, 1. Essentially field "A" occupies 3 logical columns in first logical grid row, field "B" occupies 2 logical columns in second logical row and field "C" occupies 1 logical column in the same logical row. Sice "B" occpies 2 logical columns and "C" occupies 1 logical column doesn't mean that "B" will be twice as wide as "C". The pixel widths of the first, second and third logical column will solely be determined by the pixel width requirements of the "A", "B" and "C" fields. If "A" requires 300, "B" requires 100 and "C" requires 100 then the "A" will be 300, "B" will be 100 and "C" will be 200 even though "B" has 2 logical column spans and "C" has just 1. This is because the pixel widths across logical columns are allocated based on the width requirements of the constituent fields and any slack is assigned to the rightmost column when considering which logical column to assign any slack that is required to satisfy pixel width requirement of a field spanning the multiple logical columns in question (in this case 300 requirement of "A" field that spans 3 logical columns). End result is that the width requirement of "A", "B" and "C" are all satisfied but the extra slack distribution is not evenly divided according to column span settings. The same applies to logical rows as well.


Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also