none
在Visual Studio C# 使用TreeView 元件在WinForm 開發應用程式時,TreeNode 顯示圖片出現額外的一條線的奇怪現象 RRS feed

  • 問題

  • 最近我用TreeView 元件整合到HTML編輯器, Visual Studio Community 2017.

    我用Imagelist 載入圖片後,設定給TreeView 來使用,當使用者選擇到TreeNode時,會顯示出一張白的紙加一支筆,如果沒有選到的TreeNode 就顯示出空白的紙。 

    我的程式碼片段如下:

    enum ImageList : int { Blank, BlankWithPen, Document, DocumentWithPen, DocumentWithLock, Locked }
    
    TreeView1.SelectedNode.ImageIndex = (int)ImageList.Blank;
    TreeView1.SelectedNode.SelectedImageIndex = (int)ImageList.BlankWithPen;
    
    


    目前我遇到的現象是在圖的上方,出現一條橫線。

    經過多次的程式修改及編譯及執行後,這個在TreeNode 圖片的線條會愈來愈明顯。

    當我發現這個現象時,我有試著去解快,所以我檢查了原始圖檔,但這些圖檔都很正常,原始圖檔外面也沒有額外的一條線。而且,我使用Imagelist 都是依正常的方式載入圖片,並將Imagelist 設定給指定的TreeView ,如此而已。

    所以,我試過,把所有圖檔移除後,再重新載入原始圖檔後,在沒修改任何程式原始碼的狀況下,重新編輯再執行程式,結果這個現象就會消失,顯示的就如第二張圖一樣,沒有額外的一條線。

    這個現象一直會重覆發生,當我程式做些微幅修改及編譯後,次數愈多,橫線就會愈來愈明顯,但只要移除原始圖檔後再重新載入,現象就又會消失。

    所以,很明顯,這個問題跟程式碼沒有什麼關係。

    我想請教這個問題發生的原因是什麼?另外我怎麼一勞永逸去解決,謝謝。

    ps. 我也有在Stack Overflow 提出這個問題,但沒獲得解答,裏面有擷取的照片,可供參考。

    Strange phenomenon about imagelist of treeview in C# application



    2017年10月25日 上午 05:25