控件System.Windows.Forms.UserControl在设计器中引发了一个未经处理的异常,并且已被禁用。

文章描述了如何在.NET中处理UserControl的VisibleChanged事件时遇到的错误,特别提到ComboBox控件的属性不能在控件初始化前修改,导致界面显示异常。作者通过注释掉可能导致错误的代码解决了问题。
摘要由CSDN通过智能技术生成

  1. 根据提示排查UserControl(用户控件),找到不能正确显示的用户控件,下图显示的为我的项目中的一个显示异常的用户控件,可以看到错误信息出现在异常的控件上

  2. 检查异常处涉及的用户控件绑定的所有事件,看看是否有潜在的错误(如下图所示就是潜在错误)
       /// <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;
       }

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值