国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

記錄一次:Winform的控件的Visible屬性異常問題

這篇具有很好參考價值的文章主要介紹了記錄一次:Winform的控件的Visible屬性異常問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一:背景

1. 講故事

有一次同事找到我,說以下代碼中:btnPlanAppend控件:客戶電腦顯示正常、開發(fā)者電腦調(diào)試時無法顯示文章來源地址http://www.zghlxwxcb.cn/news/detail-712148.html

  • btnAppend可以在界面中顯示出來
  • btnPlanAppend控件在界面上就是不顯示
private void Check_Privilege()
{
    string sPrivilege = ClientUtils.GetPrivilege(g_sUserID, g_sFunction, g_sProgram).ToString();
    btnAppend.Visible = SajetCommon.CheckEnabled("INSERT", sPrivilege); 
    btnPlanAppend.Visible = btnAppend.Visible;
}

二、分析

1. 使用VS調(diào)試

  • SajetCommon.CheckEnabled("INSERT", sPrivilege)方法的返回結(jié)果:true;
  • btnAppend控件也能正常顯示
  • 調(diào)試到這一行(btnPlanAppend.Visible = btnAppend.Visible;)btnAppend.Visible屬性始終返回false.

2. 分析ToolStripItem控件源碼

  • 通過此網(wǎng)站https://referencesource.microsoft.com/可以查詢.Net Framework源碼。
  • btnAppend與btnPlanAppend控件,都是ToolStripItem控件,找到Visible屬性,代碼如下:
public bool Visible {
    get {
        return (ParentInternal!=null) && (ParentInternal.Visible) &&  Available; 
    }
    set {
        SetVisibleCore(value);
    }
}
  • 從代碼中可以看出,出現(xiàn)問題應該是由于ParentInternal不滿足條件。通過Parent英語單詞可以看出,ParentInternal屬性應該是與此控件的父控件有關(guān)系。
  • 再看一下ParentInternal屬性的代碼
internal ToolStrip ParentInternal {
    get {
        return parent;
    }
    set {
        if (parent != value) {
            ToolStrip oldParent = parent;
            parent = value;
            OnParentChanged(oldParent, value);
        }
    }
}
  • 控件parent就應該是保存父控件引用。
  • 第一段代碼中Check_Privilege方法,是放在Form_Loaded事件中調(diào)用,可以推斷,調(diào)用Form_Loaded事件時,ToolStripItem還沒有真正的現(xiàn)在Form中顯示出來,parent應該為null.

3. 分析:現(xiàn)場電腦為什么可以正常顯示

  • 通過VS的查看,編譯環(huán)境中:目標框架:.NET Framework 2.0??吹竭@個好古老。
  • 開發(fā)者電腦沒有.NET Framework 2.0的環(huán)境,調(diào)試時使用是新的.NET Framework庫。

三、總結(jié)

1. 修改代碼

  • 通過分析,既然Form_Loaded事件中,獲得到btnAppend.Visible一直False。就不要使用btnAppend.Visible作為中轉(zhuǎn)變量。
  • 創(chuàng)建一個臨時變量,btnAppend與btnPlanAppend的Visible都有臨時變量賦值就可以了。

2. 總結(jié)

  • .NET Framework 版本很多,版本之間一定有差異,此類問題就是NET Framework差異造成。

到了這里,關(guān)于記錄一次:Winform的控件的Visible屬性異常問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 【生產(chǎn)問題記錄】一次簡單的 Http 請求異常處理 (請求的 url 太長, Nginx 直接返回 400, 導致請求服務異常)

    按照慣例直接說結(jié)論。 后臺服務 A 有一個 Http 接口, 代碼如下: 沒錯, 一個 Get 請求, 入?yún)⑹且粋€ List 。 同時有另一個后臺服務 B, 里面有段邏輯會通過 RestTemplate 調(diào)用服務 A 的這個接口, 代碼如下: 在服務 B 中, 通過 batchGetUserInfo 方法請求服務 A 時, 傳入了一個長度為 122 的 List

    2024年01月16日
    瀏覽(92)
  • 【C#學習記錄】如何讓界面控件實現(xiàn)自適應布局(Winform)

    【C#學習記錄】如何讓界面控件實現(xiàn)自適應布局(Winform)

    小伙伴們大家好,我是雷工! 在軟件界面設計中,客戶常常要求設計的界面可以隨意縮放,縮放過程中,界面中的按鈕等控件也會隨著窗體變大縮小自動調(diào)整顯示位置和尺寸大小。在C#的Winform窗體中如何實現(xiàn)這個效果,下面我們一起學習下。 本樣例的程序運行環(huán)境具體如下

    2023年04月21日
    瀏覽(22)
  • 記錄一次YAMLException異常

    記錄一次YAMLException異常

    ?作者簡介:大家好,我是Leo,熱愛Java后端開發(fā)者,一個想要與大家共同進步的男人???? ??個人主頁:Leo的博客 ??當前專欄: 報錯以及Bug ?特色專欄: MySQL學習 ??本文內(nèi)容:記錄一次YAMLException異常 ??個人知識庫: [Leo知識庫]https://gaoziman.gitee.io/blogs/),歡迎大家訪問

    2024年02月05日
    瀏覽(20)
  • clickhouse一次異常排查記錄

    clickhouse一次異常排查記錄

    clickhouse中報錯 關(guān)閉了自啟動,刪了status,重啟了clickhouse還是報錯 1,排查定時執(zhí)行的腳本日志(每小時第5分鐘執(zhí)行) INSERT INTO quality0529.previously_reported_urls (url) SELECT url FROM quality0529.hourly_data_view WHERE findUrlListLastTime = now() - INTERVAL 1 HOUR GROUP BY url 2,查看ck執(zhí)行異常詳細信息統(tǒng)計

    2024年02月11日
    瀏覽(21)
  • 記錄一次ScrollViewer控件 經(jīng)過大量文本數(shù)據(jù)卡頓的原因

    ? 在 WPF 中,CanContentScroll 是 ScrollViewer 控件的一個附加屬性,它控制滾動視圖中的內(nèi)容是否按項或像素來滾動。 當 CanContentScroll 設置為 false 時,表示 ScrollViewer 控件使用逐像素的滾動方式,這意味著滾動視圖中的內(nèi)容會以像素為單位進行滾動。在這種情況下,如果您需要展示

    2024年02月06日
    瀏覽(17)
  • 記一次 MySQL 主從同步異常的排查記錄,百轉(zhuǎn)千回

    記一次 MySQL 主從同步異常的排查記錄,百轉(zhuǎn)千回

    你好,我是悟空。 這是悟空的第?183?篇原創(chuàng)文章 官網(wǎng):www.passjava.cn 本文主要內(nèi)容如下: 最近項目的測試環(huán)境遇到一個主備同步的問題: 備庫的同步線程停止了,無法同步主庫的數(shù)據(jù)更改。 備庫報錯如下: 完整的錯誤信息: 上面的報錯信息是什么意思呢? 翻譯一下就是主

    2023年04月17日
    瀏覽(30)
  • 記錄一次.NET6環(huán)境使用Visual Studio 2022 V17.6.2版本的異常

    記錄一次.NET6環(huán)境使用Visual Studio 2022 V17.6.2版本的異常

    C#開發(fā)環(huán)境Visual Studio 2022 V17.6.2版本。 .NET 6.0 系統(tǒng)是Blazor Server框架的系統(tǒng)頁面,在使用Visual Studio 2022 V17.6.2版本編譯后,執(zhí)行出現(xiàn): 先使用了Visual Studio 2022 V17.4.0版本編譯后可以正常。 經(jīng)過分析:Visual Studio 2022 V17.4.0還在使用的目標框架為:.NET 6.0,Visual Studio 2022 V17.6.2版本的

    2024年02月08日
    瀏覽(26)
  • 記錄一次微服務連接Nacos異常-errorMsg: Illegal character in authority at index 7:

    組件信息 Nacos 2.2.3 SpringCloud微服務 部署環(huán)境:centerOS 部署方式:k8s 前言 nacos開啟鑒權(quán),nacos地址通過變量方式傳入服務中 k8s在傳入${NACOS_ADDR}時先對地址做了base64編碼 服務啟動異常 下面是服務啟動異常的日志 問題排查 首先通過異常日志com.alibaba.nacos.api.exception.NacosException:

    2024年02月11日
    瀏覽(20)
  • 記一次Oracle歸檔日志異常增長問題的排查過程

    Oracle歸檔日志是Oracle數(shù)據(jù)庫的重要功能,用于將數(shù)據(jù)庫的重做日志文件(Redo Log)保存到歸檔日志文件(Archive Log)中。歸檔日志的作用是提供數(shù)據(jù)庫的備份和恢復功能,以及支持數(shù)據(jù)庫的持續(xù)性和數(shù)據(jù)完整性。 當數(shù)據(jù)庫處于歸檔模式時,數(shù)據(jù)庫引擎會將已經(jīng)寫滿的重做日志

    2024年02月14日
    瀏覽(22)
  • 【踩坑日志】SpringBoot讀取nacos配置信息并提取信息中的IP地址(配置屬性解析異常+排錯記錄)

    【踩坑日志】SpringBoot讀取nacos配置信息并提取信息中的IP地址(配置屬性解析異常+排錯記錄)

    緣起 :項目需讀取nacos中動態(tài)的TDengine數(shù)據(jù)庫連接信息并提取IP,一個并不復雜的操作,但作為一個nacos知識淺薄的菜雞,我愣是捯飭了幾個小時……慚愧慚愧…… 異常代碼 報錯信息 報錯核心: Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Coul

    2024年01月19日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包