我的表单看起来像一个三窗格的电子邮件客户端。左侧是一个包含人员列表的网格。右上角是当前人的详细记录。右下是许多复选框显示专长的当前人的领域自定义控件:等待控件初始化
[X]烹饪[X]擦窗[X]脑外科
[X]按摩疗法[X]唱歌[]随意的破坏行为
当窗体被打开时,焦点转到窗体左侧网格中列出的第一个人,并且网格的focused_row_changed事件触发。在此事件的处理程序中,我获取当前人员的ID,然后从数据库中获取该人员的详细信息并填充详细信息记录,还可以获取该人员的专业知识领域行并设置复选框。除非表单第一次打开,否则所有这些工作都正常,因为那时带有许多复选框的自定义控件尚未初始化。此时MyCustomControl为空。
if (null != MyCustomControl)
{
MyCustomControl.SetCheckedValues(datasource);
}
什么是处理这种情况的最佳实践设计模式?当我的控制没有完全初始化时,我在这里做什么?
if (null != MyCustomControl)
{
MyCustomControl.SetCheckedValues(datasource);
}
else
{
// ?? Wait around for a bit and keep trying every 100ms?
}
你能详细了解MyCustomControl何时被初始化以及初始化依赖于什么? – Yetti 2011-03-28 17:53:20