vb窗體中控制元件自動隨窗體變化大小(原始碼)
原始碼下載:http://blog.blogchina.com/upload/2004-12-07/20041207155830520878.rar
在開發中,往往開發人員需要控制控制元件大小適應視窗的大小,使得軟體在不同的解析度下也顯得比例協調.
那麼,怎麼才能讓窗體中控制元件自動隨窗體變化大小呢?
我覺得有一種原始方法很有用,不讓窗體可以最大化:比如飛天餐飲軟體.......
當然這種方法是繞道而行.開發出來的軟體肯定好看不了.
好了,讓我們來引出下面這個很有用,比較專業的Model吧.
--------------------------------------------------------------------------------
Option Explicit
Private FormOldWidth As Long
'儲存窗體的原始寬度
Private FormOldHeight As Long
'儲存窗體的原始高度
'在呼叫ResizeForm前先呼叫本函式
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub
'按比例改變表單內各元件的大小,在呼叫ReSizeForm前先呼叫ReSizeInit函式
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double
ScaleX = FormName.ScaleWidth / FormOldWidth
'儲存窗體寬度縮放比例
ScaleY = FormName.ScaleHeight / FormOldHeight
'儲存窗體高度縮放比例
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For i = 0 To 4
'讀取控制元件的原始位置與大小
TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
StartPos = TempPos + 1
Else
Pos(i) = 0
End If
'根據控制元件的原始位置及窗體改變大小的比例對控制元件重新定位與改變大小
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next i
Next Obj
On Error GoTo 0
End Sub
'開發軟體時候,把這個modal裝入程式中.然後加入如下程式碼:
Private Sub Form_Load()
Call ResizeInit(Me) '在程式裝入時必須加入
End Sub
Private Sub Form_Resize()
Call ResizeForm(Me) '確保窗體改變時控制元件隨之改變
End Sub
--------------------------------------------------------------------------------
ok,這樣你的軟體就可以窗體中控制元件自動隨窗體變化大小!
你的軟體至少從外觀上從此變得不再那麼難看了.而且大解析度下也顯得比例協調了.
相關文章
- VB中實現窗體自動隱藏 (轉)
- 在VB中實現窗體的動態效果 (轉)
- vue 動態監聽視窗大小變化事件Vue事件
- C#遍歷窗體控制元件程式碼,遍歷窗體所有按鈕控制元件程式碼C#控制元件
- 一勞永逸讓VB自動改變控制元件大小控制元件
- C#實現窗體拖動、不允許窗體拖動、任意控制元件執行時拖動C#控制元件
- 自動感知窗體的關閉事件事件
- Qt+ECharts開發筆記(二):Qt視窗動態調整大小,使ECharts跟隨Qt視窗大小變換QTEcharts筆記
- 窗體(隨機數,列表框,標籤,按鈕,修改窗體名字)隨機
- BCB 窗體透明控制元件 (轉)控制元件
- 從VB 6到VB.NET——窗體特殊應用 (轉)
- VB學習要點3----本窗體下Format函式下的操作(包括本窗體下的字型,顏色,大小的更改)ORM函式
- 巧用窗體控制元件完成表格規範化填寫控制元件
- 《軟體自動化測試成功之道》隨書附帶原始碼原始碼
- c# 窗體自適應C#
- C# 如何重複呼叫父窗體中的子窗體C#
- 一個問題——在MDI窗體中新增控制元件後顯示子窗體控制元件
- Qt如何寫一個三秒自動消失提示窗,適用於窗體和tableView中QTView
- 直播原始碼,懸浮窗滾動漸變色效果原始碼
- 父窗體、子窗體關係設定
- C# 強行鎖定 第三方 外部 應用程式窗體視窗的解析度尺寸大小 禁止滑鼠拖拽改變視窗大小C#
- windows窗體Windows
- winform之在主窗體中不顯示子窗體的選單欄ORM
- C# WinForm 父窗體 子窗體 傳值C#ORM
- jQuery子窗體如何取得父窗體的元素jQuery
- 監聽視窗大小改變,同時根據視窗大小修改某個元素的大小
- 快速清空C#WINFORM窗體控制元件值C#ORM控制元件
- 真正的讓iframe自適應高度 相容多種瀏覽器隨著視窗大小改變瀏覽器
- WPF和js互動 呼叫窗體中的方法JS
- 讓普通控制元件擁有左鍵移動窗體的功能控制元件
- Vb中控制元件的自動排列 (轉)控制元件
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- js實現的拖動改變視窗大小功能JS
- 介面與窗體
- 效能調優的Windows窗體DataGridView控制元件WindowsView控制元件
- C#建立不規則窗體和控制元件C#控制元件
- 根據瀏覽器視窗的大小不同自動調節文字大小瀏覽器
- WPS文字技巧:巧用窗體控制元件完成表格規範化填寫控制元件