- 根据提示排查UserControl(用户控件),找到不能正确显示的用户控件,下图显示的为我的项目中的一个显示异常的用户控件,可以看到错误信息出现在异常的控件上
- 检查异常处涉及的用户控件绑定的所有事件,看看是否有潜在的错误(如下图所示就是潜在错误)
/// <summary>
/// 控件首次加载使用全局变量值PerPageCount
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmb_PerPageCount_VisibleChanged(object sender, EventArgs e)
{
this.cmb_PerPageCount.Text = Properties.Settings.Default.PerPageCount;
}
- 上面代码里的cmb_PerPageCount是ComboBox控件,这里涉及到的正是System.Configuration.ConnectionStringsSection
- ComboBox控件的属性不得在未经过初始化前进行修改,因为VisibleChanged事件在控件的可见状态发生变化时触发。如果此时控件尚未完成初始化,直接修改其属性可能会导致未定义的行为或者错误。
最后将该代码注释,界面恢复正常
/// <summary>
/// 控件首次加载使用全局变量值PerPageCount
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmb_PerPageCount_VisibleChanged(object sender, EventArgs e)
{
//this.cmb_PerPageCount.Text = Properties.Settings.Default.PerPageCount;
}