"Given the time and effort that it can take getting up to speed with the Microsoft Property Grid, it is very frustrating when you realize that it is not going to allow you to present data in anything but the most basic ways without digging into unsupported techniques, and then all bets are off on the future of your application. The Smart Property Grid gives us both the ability to leverage our skills and code written for the MSPG, and the flexibility that every developer wants when creating a polished UI. Thank you VisualHint for providing such a great product and for your wonderful and responsive support!"
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 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.