在建立winform視窗時,常常控制項不能隨視窗正確比例縮放。
執行窗體如下:
最大化後窗體:
縮小後窗體:
實現方法如下
在form1視窗下新增乙個panel工具,在父容器中停靠;
然後在panel容器中放置我們需要的工具;
新建乙個 nform 窗體類,繼承預設窗體類 form ,而原來的 form1 :form 窗體類繼承的預設窗體類修改為 form1 :nform 自定義新建的窗體類。
新建窗體類**如下:
using system;
using system.collections.generic;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
foreach
(control item in crlcontainer.controls)
}private
void
controlschangeinit
(control crlcontainer)
private
void
controlschange
(control crlcontainer)
double itemwidth = pos[2]
* scalex;
double itemheight = pos[3]
* scaley;
item.left = convert.
toint32
(pos[0]
* scalex - itemwidth /2)
; item.top = convert.
toint32
(pos[1]
* scaley - itemheight /2)
; item.width = convert.
toint32
(itemwidth)
; item.height = convert.
toint32
(itemheight)
;try
catch}}
}#endregion
protected
override
void
onsizechanged
(eventargs e)}}
}
在form1.cs檔案中修改:
public
partial
class
form1
:nform
}
控制項大小隨視窗等比例變化
第一步 oninitdialog裡儲存對話方塊及其所有子窗體的rect區域 在主視窗類中新增成員變數 clistm listrect成員變數 crect rect getwindowrect rect m listrect.addtail rect 對話方塊的區域 cwnd pwnd getwind...
C Winform 控制項大小隨窗體大小等比例縮放
在from1.cs中輸入如下 public form1 其中settag this 為控制項等比例縮放的方法 region 控制項大小隨窗體大小等比例縮放 private float x 定義當前窗體的寬度 private float y 定義當前窗體的高度 private void settag ...
C 控制項大小隨窗體大小等比例變化
相信很多博友在開發初次接觸學習c winform時,當窗體大小變化時,窗體內的控制項並沒有隨著窗體的變化而變化,最近因為乙個專案工程的原因,也需要解決這個問題。通過查閱和學習,這個問題得到了解決,或許不是很好的處理方式,但是也值得借鑑。下面我將建立乙個demo來大概解釋下這個方法的實現 注 我使用的...