"We were looking for a property grid that integrates with the existing MS infrastructure and provides greater flexibility and efficiency in customization than MSPG. Fortunatly, we found VisualHint and SPG. Its rich features and steady enhancements together with a first class support not only make it an outstanding product, it makes it THE property grid for .NET."
SFPE.Net now contains a pure .Net 4 assembly in the distrib folder.
There was a null reference exception when disposing a DateTimePicker.
Fixed several memory leaks due to unregistered event handlers.
SFPE assembly in the ".Net 2" distrib folder can now be used on a machine where only .Net 4 is installed.
Added the JumpToNextFieldOnEditionMode property to control the next selected field set when the last editable field of the control is finished editing by the user (when JumpToNextFieldOnEdition is true).
The VS2010 SP1 designer could throw an exception when opening a form containing SFPE.
There was a crash when opening the month calendar on a DateTimePicker whose min and max value range does not include the Today date.
When Application.EnableVisualStyles() was not called, if SFPE controls were setup with a Fixed3D BorderStyle, this is is not the style that was used.
The licensing engine used in SFPE is now FIPS (Federal Information Processing Standard) compliant.
The SFPE assembly now weighs 416 KB instead of 1 MB
The DateTimePicker has now a ValueChanging event allowing you to change the commited value or to cancel the commit operation.
The client application can be compiled against the .Net 4 Client Profile.
Fixed a regression bug: if an editor is used inside SPG, typing characters on a field waiting for multiple characters and leaving the editor while the field is not complete won't update the related grid's property.
Fixed a regression bug: the Today button had the same effect than the Clear button.
When using the DateTimePicker in a DataGrid only, the license code was not found at runtime.
If your client app was raising an exception in a PropertyChanged event handler, it was not detected in SFPE, a specific internal variable was not reset and the value could not be set anymore.
The TimeSpanEditorCell class was missing the ValueType property override, which could lead to a crash, for example when manually creating a row with a TimeSpan in a DataGridView.
The serial number requested at design-time has a new format.
Can be used with the new Smart PropertyGrid.Net 3.2 version
When the DateTimePicker was used in a non bound DataGridView, there was an exception when closing the dropdown calendar.
The DateTimePicker now uses a new MonthCalendar control which will be assigned the same CultureInfo than the DTP. The calendar can also be used standalone and it can optionally display Today and Clear buttons.
The CultureInfo property of the DateTimePicker can now be changed in the PropertyGrid inside Visual Studio.
The FieldPackEditor can display a textbox instead of fields (ShowTextBox property) and a button to let the user make the switch (ShowTextBoxButton property). The content of the textbox can be set and retrieved freely, supported by the TextBoxVisible event.
The FieldAdded event has been added to the FieldPackEditor class.
The MinDate and MaxDate properties for the MonthCalendar and the DateTimePicker are now limited by the DateTime class, not by the MS DateTimePicker anymore (so you can choose a date prior to 1753 for instance). The initial values, however are unchanged (set to 1753 and 9998) and you will have to change them if they are not suitable in your application (to set them to 0 and 9999 for instance).
Setting a latitude or longitude in the designer for the LatLongEditor had no effect.
The BackColor property of individual fields was not used for painting.
Changing the font of the DateTimePicker at runtime was causing a small display corruption.
When used with SPG.Net, the ip address and lat/long feels where not triggering the InPlaceCtrlCreated event.
When the IpAddressEditor is used in a disabled PropertyGrid (when DisableMode is set to Simple and ReadOnlyVisual is set to Disabled), the value of the editor was not displayed.
There was a crash when clicking the dropdown arrow of a DateTimePicker to show the MonthCalendar, and the initial value was out of the min and max bounds set on the DateTimePicker.
It was possible to trigger the MonthCalendar of the DateTimePicker with the middle and right mouse buttons.
When a TimeSpanEditor was used in a DataGridView, the text displayed when no inplace control was active could be wrong because the minimum and maximum values were not taken into account.
Severe bug: when the focus was in the DateTimePicker, clicking Alt+F4 to close the app was also trying to open the dropdown calendar (only F4 and Alt+down should do that), resulting in a crash.
When the DateTimePicker was used inside the PropertyGrid, clicking a month or year arrow in the dropdown MonthCalendar and then the day that is already selected was not commiting the new date.
The CultureInfo property of the DateTimePicker has migrated to its FieldPackEditor base class.
A TimeSpan editor has been added. It can be used standalone, in a DataGridView and in Smart PropertyGrid.Net.
Mouse wheel is supported to increment and decrement the value of the selected field.
Support for horizontal alignment on the text baseline has been added during design-time. This enables easy alignment with a label text for example.
If used with Smart PropertyGrid.Net, it references SPG 188.8.131.52.
In the DateTimePicker, the "FF...." format specifier was acting like the "ff...." specifier. It is now implemented correctly to remove trailing zeros.
The DateTimePicker has been modified to allow an automatic change of the suffix after the day number (1st, 2nd, 3rd, 4th, ...).
When a "non fixed width" field was in the middle of being edited (not all characters had been typed on a field accepting N characters), loosing focus was not recalculating the layout of the field, potentially creating a clipped field (for example "01" was centrally displayed on a single character width).
In the PropertyGrid, when the edition of a field was in progress (not all characters had been typed on a field accepting N characters), hitting ESC was not restoring the previous value.
Over a checkbox, the blank key was jumping to the next field instead os switching the value of the checkbox.
The Time and Date separators were not detected in a custom format string and therefore were not replaced by their Culture equivalent.
In DataGridView, leaving a cell while in the middle of editing a field (not all characters had been typed on a field accepting N characters) was not commiting the new value.
Hitting F4 on editors without a dropdown button inside the PropertyGrid was causing an exception.
When loosing the focus on the editor and the content was scrolled, the offset was not resetted to 0, i.e the content was still displayed as scrolled.
There was an issue that could prevent databinding to be setup well during the initialization code of the designer.
When typing a mnemonic char (a char specified as the access char on a button of the form for example), the editor was ignoring the char.
A convenient latitude/longitude editor has been added to wrap LatLongFieldPacks. What makes it exceptional is that it accepts values as float, double, decimal and corresponding nullable types and it can even be given your own latitude/longitude type as long as it is IConvertible to decimal or an attached TypeConverter can make the conversion.
The latitude/longitude editor has a new inplace control for Smart PropertyGrid.
The latitude/longitude editor can display its value as deg.fraction, deg min.fraction or deg min sec.fraction, with the fraction being optional.
The IpAddress editor has a new inplace control for Smart PropertyGrid. It can be attached to a string or uint property type.
Field.Readonly is now handled (behaviour and ForeColor). A ReadOnly field can still be selected. If you don't want so, just set Field.Selectable to false.
FieldPackEditor.ReadonlyForeColor has been added.
DateTimeCustomFormatConverter has been set to the DateTimePicker.CustomFormat property so that it lists all standard format strings.
There is now a simple way to set any field pack to accept the delete key or not, to nullify its content. Call the AcceptsDeleteKey property on the supplied editors or more specifically on individual field packs. The SpgSfpeAdapter also provides an attribute (FieldPackAcceptsDeleteKeyAttribute).
The visibility of the checkbox, updown and dropdown buttons can now be set through the look class in Smart PropertyGrid.
A month name field can now be edited with a numeric value (typing 2 will give february).
Jumping to the next field can now be done with the blank key or the first letter/sign of the adjacent static field.
When an editor was inside Smart PropertyGrid, its value was not commited if the user was in the middle of typing in a field.
The up/down buttons were not effective when the user was in the middle of typing in a field.
Better detection of a separator in the datetime format string. There was a problem when the user was typing a separator char prefixed by another static field.
In an editor showing the time in 12h format with an AP/PM designator, changing the hour field could incorrectly change the AM/PM designator.
Then management of the temporary buffer used while typing in a field has been enhanced.