關於C 的Panel控制項重繪後滾動條跳動的問題

2021-09-25 14:23:15 字數 532 閱讀 3798

在網上找了很多方法,(1)記錄滾動條位置,然後在重繪時將儲存下來的位置重新複製;

(2)重寫scrolltocontrol;

其中第一種方法治標不治本,會出現畫面閃動,第二種方法最為有效。

下面主要記錄重寫scrolltocontrol過程:

參考部落格:

主要思路是繼承panel,然後重寫scrolltocontrol。

(1)在使用該panel控制項的窗體下的類裡面加入如下**:

public partial class mypanel : panel

}

(2)修改initializecomponent()函式(我的程式名字叫tool,它的form1內使用了panel控制項):

//         this.panel1 = new system.windows.forms.panel();

this.panel1 = new tool.form1.mypanel();

通過上面兩步即可解決滾動條的問題。

c 控制項重繪事件

引用的控制項需要更改 沒有提供屬性修改的設定時,可以通過重繪事件來更改ui 如 tablelayout 沒有border,可以通過重繪來畫出邊框。tablelayout 重繪事件 事件註冊 this.tablelayoutpanel1.cellpaint new tablelayoutcellpai...

關於CEdit控制項的透明(重繪)

摘自 做乙個透明的edit控制項的主要問題是字元的輸出,在edit裡輸出的重新整理有幾個時機,乙個是在接收到鍵盤或滑鼠訊息的時候 還有就是在接收到wm paint訊息。重新整理的時候也不是全部重畫,所以想通過在繼承的edit類中處理wm paint訊息是行不通的。但是edit控制項自己總是知道怎麼去...

解決winform中的panel重繪閃爍問題

利用winform開發時,可能都會遇到乙個問題,就是在panel中不停的重繪圖形時,圖形會不停的閃爍。要解決這個辦法只需要開啟雙緩衝即可,由於初學c 理解的不是很深,所以不多做解釋。以下 親測可以解決這個問題 首先建立乙個自己的panel類 using system using system.col...