像IDE那樣調整控制項的大小

2021-08-03 11:06:14 字數 677 閱讀 9739

最近在做乙個新的專案,遇到乙個小問題就是介面上的控制項需要能夠讓使用者手動調節大小,類似vs那樣通過拖拽進行實現。一開始想通過重繪,但是事件的監聽那塊又不知道要怎麼搞,而且自己對gdi+也不是很熟,後面查了官方的資料發現了兩個方法,所以在這裡分享一下。

下面介紹方法一

protected override createparams createparams

}通過重寫createparams事件,重繪了控制項的邊框,先呼叫基類的繪製事件,然後將設定一下格式,類似於乙個控制引數,這種方法可用程度已經很高了,調整方式於ide基本一致,但是有乙個弊端就是會給控制項加上了乙個邊框,樣子是這樣的

下面介紹方法二

首先設定一下屬性this.resizeredraw = true;

protected override void onpaint(painteventargs e)

protected override void wndproc(ref message m)

}private const int grab = 16;

這個方法區別於三個方法的地方在於,首先手動繪製了乙個三角形在控制項的右下角,然後重寫了窗體事件處理,主要就是獲取滑鼠的事件,然後進行響應,這個方法的效果是這樣子的

希望能給需要的人看到,希望寄幾接下來能快點把這個專案搞完,寫這個部落格也是為了勉勵一下自己,不至於整天想著回家賣牛肉

C winfrom 自動調整控制項大小

最近公司要重構乙個專案,把c 寫的桌面應用改為winfrom,而此時我遇到乙個問題就是winfrom控制項的自動放大和縮小,就是根據視窗的大小來改變winfrom視窗和容器內的控制項的大小。在網上找了很多得到的效果並不如意,大多數都在介紹控制項中的anchor屬性,但是這個屬性會受各方面的影響,比如...

vb中自動調整控制項的大小

機房收費系統中有很多查詢記錄類的窗體用到了mshflexgrid控制項。當沒有調整該控制項的大小時,查詢結果可能會如圖所示 而我們需要的是 這本來是乙個很簡單的調整mshflexgrid列寬的問題,只需要設定allowuserresizing即可,如圖 然後再調出 call adjustcolwid...

Qt控制項大小跟隨視窗調整

來自qq群 linux 技術分享 311078264 通過qt creator的設計模式實現,無需增加 如下圖,實現對最下層tableview大小跟隨視窗調整 1 介面空白處右擊,選擇布局 柵格布局,這會使centralwidget布局設定為gridlayout。然後介面中的部件會自動新增到柵格布局...