Posted 16 August 2024, 2:21 am EST - Updated 16 August 2024, 10:24 pm EST
Doing new evaluations of the C1 Input v 8 controls to assess the viability of upgrades of legacy .NET 4.8 projects, we discovered the current v 8 (8.0.20241.664) C1 input controls have two annoying issues that should be fixed somehow.
Issue 1)
Adding the C1.Win.DbNavigator to a project that already has C1.Win.Input, C1.Win.Calendar, C1.Win.TrueDBGrid, C1.Win.FlexGrid added, causes the designer to choke: the C1TextBox control is not visible anymore in the Toolbox panel and any existing on-form C1TextBox controls cannot be edited with the Form designer anymore. See two example solutions below that demonstrate this problem.
Issue 2)
Setting the DataSource + DataMember for e.g. C1TextBox / C1DateEdit / C1Label to an on-form BindingSource and a named member/field/column, but with the BindingSource itself still unconnected to an underlying DataTable/DataView/BindingList, the appropriate init code for InitializeComponent() is generated. However when the application is run, the C1 Input controls throw exceptions because the BindingSource is still unconnected/empty at the time InitializeComponent() is run - that happens only after that call in the remainder of de Form Constructor code.
C1 controls like C1FlexGrid or C1TrueDBGrid don’t have this problem, so this would be easy to fix: do not throw exceptions when the DataSource for the controls is still empty.
It should be noted standard .NET controls like TextBox also do have the this capability of a DataBinding to a named field/member/column for a BindingSource that doesn’t have a DataSource set yet at design-time. So fixing this issue for the C1 Input controls would bring it in line with the standard .NET controls.