ToB企服应用市场:ToB评测及商务社交产业平台

标题: 记录一次:Winform的控件的Visible属性异常问题 [打印本页]

作者: 十念    时间: 2023-9-28 20:43
标题: 记录一次:Winform的控件的Visible属性异常问题
一:背景

1. 讲故事

有一次同事找到我,说以下代码中:btnPlanAppend控件:客户电脑显示正常、开发者电脑调试时无法显示
  1. private void Check_Privilege()
  2. {
  3.     string sPrivilege = ClientUtils.GetPrivilege(g_sUserID, g_sFunction, g_sProgram).ToString();
  4.     btnAppend.Visible = SajetCommon.CheckEnabled("INSERT", sPrivilege);
  5.     btnPlanAppend.Visible = btnAppend.Visible;
  6. }
复制代码
二、分析

1. 使用VS调试

2. 分析ToolStripItem控件源码

  1. public bool Visible {
  2.     get {
  3.         return (ParentInternal!=null) && (ParentInternal.Visible) &&  Available;
  4.     }
  5.     set {
  6.         SetVisibleCore(value);
  7.     }
  8. }
复制代码
  1. internal ToolStrip ParentInternal {
  2.     get {
  3.         return parent;
  4.     }
  5.     set {
  6.         if (parent != value) {
  7.             ToolStrip oldParent = parent;
  8.             parent = value;
  9.             OnParentChanged(oldParent, value);
  10.         }
  11.     }
  12. }
复制代码
3. 分析:现场电脑为什么可以正常显示

三、总结

1. 修改代码

2. 总结


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4