property Column.FireFormatColumn as Boolean
Retrieves or sets a value that indicates whether the control fires the FormatColumn event in order to format the caption for each cell in the column.

TypeDescription
Boolean A boolean expression that indicates whether the control fires the FormatColumn event in order to format the caption for each cell in the column.
By default, the FireFormatColumn property  is False. If the FireFormatColumn property is True, the control fires the FormatColumn event each time when a cell requires to be displayed. The FormatColumn event lets the user to provide the cell's caption before it is displayed on the control's list. For instance, the FormatColumn event is useful when the column cells contains prices( numbers ), and you want to display that column formatted as currency, like $150 instead 150. Also, using the FormatColumn event, you can display the result of some operations within an item, such of totals. Newer versions of the component provides the FormatColumn property that helps formatting a cell using the several predefined functions without using the control's event FormatColumn.

Before running any of the following samples, please make sure that the control contains more than 3 columns, and the third column has the FireFormatColumn property on True. The following VB sample displays the sum of the first two cells, and put the result on the third one: 

Private Sub List1_FormatColumn(ByVal ItemIndex As Long, ByVal ColIndex As Long, Value As Variant)
On Error Resume Next
    With List1.Items
        Value = Int(.Caption(ItemIndex, 0)) + Int(.Caption(ItemIndex, 1))
    End With
End Sub

The following VB sample displays long date format, using the FormatDateTime function:

Private Sub List1_FormatColumn(ByVal ItemIndex As Long, ByVal ColIndex As Long, Value As Variant)
On Error Resume Next
    Value = FormatDateTime(Value, vbLongDate)
End Sub

The following C++ sample displays the sum of the first two cells, and put the result on the third one: 

void OnFormatColumnList1(long ItemIndex, long ColIndex, VARIANT FAR* Value) 
{
	CItems items = m_list.GetItems();
	long newValue = V2I( &items.GetCaption( ItemIndex, COleVariant( long(0) ) ) );
	newValue += V2I( &items.GetCaption( ItemIndex, COleVariant( long(1) ) ) );
	V_VT( Value ) = VT_I4;
	V_I4( Value ) = newValue;
}

where the V2I function converts a VARIANT value to a long expression,

static long V2I( VARIANT* pv, long nDefault = 0 )
{
	if ( pv )
	{
		if ( pv->vt == VT_ERROR )
			return nDefault;

		COleVariant vt;
		vt.ChangeType( VT_I4, pv );
		return V_I4( &vt );
	}
	return nDefault;
} 

The following C++ sample displays long date format:

void OnFormatColumnList1(long ItemIndex, long ColIndex, VARIANT FAR* Value) 
{
	COleDateTime date( *Value );
	COleVariant vtNewValue( date.Format( _T("%A, %B %d, %Y") ) );
	VariantCopy( Value, vtNewValue );
}

The following VB.NET sample displays the sum of the first two cells, and put the result on the third one: 

Private Sub AxList1_FormatColumn(ByVal sender As Object, ByVal e As AxEXLISTLib._IListEvents_FormatColumnEvent) Handles AxList1.FormatColumn
    With AxList1.Items
        Dim newValue As Integer = Integer.Parse(.Caption(e.itemIndex, 0), Globalization.NumberStyles.Any)
        newValue = newValue + Integer.Parse(.Caption(e.itemIndex, 1), Globalization.NumberStyles.Any)
        e.value = newValue
    End With
End Sub

The following VB.NET sample displays long date format:

Private Sub AxList1_FormatColumn(ByVal sender As Object, ByVal e As AxEXLISTLib._IListEvents_FormatColumnEvent) Handles AxList1.FormatColumn
    e.value = DateTime.Parse(e.value).ToLongDateString()
End Sub

The following C# sample displays the sum of the first two cells, and put the result on the third one: 

private void axList1_FormatColumn(object sender, AxEXLISTLib._IListEvents_FormatColumnEvent e)
{
	int newValue = int.Parse(axList1.Items.get_Caption(e.itemIndex, 0).ToString());
	newValue += int.Parse(axList1.Items.get_Caption(e.itemIndex, 1).ToString());
	e.value = newValue;
}

The following C# sample displays long date format:

private void axList1_FormatColumn(object sender, AxEXLISTLib._IListEvents_FormatColumnEvent e)
{
	e.value = DateTime.Parse(e.value.ToString()).ToLongDateString();
}

The following VFP sample displays the sum of the first two cells, and put the result on the third one:

*** ActiveX Control Event ***
LPARAMETERS itemindex, colindex, value

with thisform.List1.Items
	value = .Caption(itemindex,0) + .Caption(itemindex,1)
endwith