两年前,我使用Visual Studio 2010开发了Winforms C#应用程序(目标框架:.NET Framework 4客户端配置文件)。在不同的.NET框架中使用Tabcontrol问题
此应用程序有一个Form1:Form,INotifyPropertyChanged带有tabcontrol的tabcontrol。我绑定了我的窗体的自定义属性,这些窗体是在构造窗体时不可见的标签页上的控件。绑定是这样的:
BindingSource BndFrom1 = new BindingSource();
BndFrom1.DataSource = typeof(Form1);
BndFrom1.Add(this);
TxtTemperature.DataBindings.Add("Text", BndFrom1, "TemperatureString", true, DataSourceUpdateMode.OnPropertyChanged);
这工作正常。在使用.NET Framework 4.6切换到Windows 10后,应用程序突然不能正常工作,切换到另一个页面时,应用程序变慢或卡住了。如果我改变了标签页的顺序,它总是第一个正常工作的标签页。 我试图“力” Form1中通过调用
private static void CreateControls(Control control)
{
CreateControl(control);
foreach (Control subcontrol in control.Controls)
{
CreateControl(subcontrol);
}
}
private static void CreateControl(Control control)
{
var method = control.GetType().GetMethod("CreateControl", BindingFlags.Instance | BindingFlags.NonPublic);
var parameters = method.GetParameters();
method.Invoke(control, new object[] { true });
}
所有的TabPages
创建invissible控制,但这并没有工作。
当我通过控制页面上的控件删除所有数据绑定后,问题就解决了。
我有我的应用程序的第一个版本,与数据绑定,仍然在Windows 7 PC上运行propper。但是在.NET Framework 4.7的更新之后,它遇到了同样的问题,并且在安装新版本的应用程序后,它不见了。
这是一个已知的问题,如果有,是否有解释和解决方案?有没有人有更好的解决方案,我可以继续使用绑定?
由于提前,
ELEC