数据控件包括DataGridView、TreeView、ListView、ComboBox、ListBox等,都依靠DataSource属性使用数据绑定功能,但是这都是建立在数据控件所在的Form上使用的,即窗体控件上使用的,一旦所在的不是窗体控件,数据绑定功能、自动加载功能就不起作用,所以就要利用一个背景窗体和UserControl承载使用的控件。
设计时用一个UserControl承载控件;
运行时建立一个背景窗体,添加这个UserControl,然后挂起,再把UserControrl或控件添加到非窗体上,这样自动加载功能就正常了,当然要记得Dispose时把UserControl和背景窗体一起Dispose。
/// <summary>【缓存控件】背景窗口,用于数据绑定,不显示,不布局</summary>
private Form BkForm;
BkForm = new Form();//新建背景窗体
BkForm.Controls.Add(Child);//把数据控件添加到背景窗体里
BkForm.SuspendLayout();//背景窗体挂起