乙個Refresh()指令解決了困擾了我2天的問題

2021-06-02 14:35:40 字數 512 閱讀 2518

用gdi+通過資料的**配置自動生成拓撲圖,由於對c#gdi+開發缺少經驗,只能嘗試各種函式的實際效果和自己之前做vc++與vb一些經驗。

之前主要問題是,設定了自動繪製控制項picturebox布局和自動按照控制項間位置生成連線。其中生成自動連線的函式,利用了參考來的例子,使用

graphics g = this.panel1.creategraphics();

g.clear(panel1.backcolor);

//bitmap bmp = new bitmap("背景2.jpg");

= bmp;

g.dispose();

來擦除已繪製的連線,嘗試好久,效果很差,彷彿是在地圖上再塗了一層底色。

之後思路走了很多彎路,在onpaint之中重新設定底圖,嘗試在各種場合恢復底圖。

後來在csdn上看到一篇文章中利用了refresh函式,利用區域控制項無效化,順利實現。

不過我有點疑問,為什麼用invalidate無法實現類似效果。

暫存,留待解決。

解決了乙個小問題

原來在debian上使用mplayer w32codecs一直彈出 error could not open required directshow codec drvc.so 的惱人的小問題,今天google了一下,參照fc6下mplayer安裝 執行 發現也有乙個類似libstdc so.5 n...

今天解決了乙個空指標

swagger裡傳入請求資料時,老是報nullpointerexception debug時發現會出現這麼一行 cannot find local variable 原因是資料庫表裡後來加了個擴充套件欄位param1,然而在請求報文裡有命名規範為sid,雖然實體類裡改了資料庫的字段,但是請求報文轉換...

幫助別人解決了乙個技術題

n 3 1 1 1 1 2 1 2 2 1 is considered the same solution 3 3 n 5 1 1 1 1 1 1 2 1 1 1 2 3 1 1 3 4 1 2 2 5 1 4 6 2 3 7 5 就是 使用者輸入乙個數字 就分解成上述的東西 上至下的順序由長度決定...