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,這樣你的軟體就可以窗體中控制元件自動隨窗體變化大小!
你的軟體至少從外觀上從此變得不再那麼難看了.而且大解析度下也顯得比例協調了.
相關文章
- vue 動態監聽視窗大小變化事件Vue事件
- Qt+ECharts開發筆記(二):Qt視窗動態調整大小,使ECharts跟隨Qt視窗大小變換QTEcharts筆記
- c# 窗體自適應C#
- 直播原始碼,懸浮窗滾動漸變色效果原始碼
- C# 強行鎖定 第三方 外部 應用程式窗體視窗的解析度尺寸大小 禁止滑鼠拖拽改變視窗大小C#
- C# 如何重複呼叫父窗體中的子窗體C#
- Qt如何寫一個三秒自動消失提示窗,適用於窗體和tableView中QTView
- Echarts自適應:當視窗大小發生變化時,重新渲染圖表Echarts
- 監聽視窗大小改變,同時根據視窗大小修改某個元素的大小
- windows窗體Windows
- WPF中webview2滑鼠移動窗體WebView
- 真正的讓iframe自適應高度 相容多種瀏覽器隨著視窗大小改變瀏覽器
- winform之在主窗體中不顯示子窗體的選單欄ORM
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- 向 splitContainer1 控制元件中新增子窗體AI控制元件
- WPF 透明窗體
- 窗體事件 1130事件
- Python 指令碼自動視窗截圖Python指令碼
- 按住panel 拖動窗體的方法
- Winform在主窗體載入前彈出登入窗體ORM
- 窗體傳值 父子窗體傳值情況 c# 1231C#
- vs2022中windows窗體winform沒有窗體設計器問題處理WindowsORM
- ReactNative字型大小不隨系統字型大小變化而變化React
- 自動化指令碼不穩定,原來是軟體彈窗惹的禍,2個方法解決!指令碼
- win10如何取消視窗貼邊時自動調整大小Win10
- win10怎麼關閉視窗移動至邊緣時自動調整大小_win10取消移動視窗到邊緣自動調整大小的方法Win10
- python中視窗主體框架如何搭建?Python框架
- 直播軟體原始碼,設定懸浮窗並可進行任意位置的移動原始碼
- 讓一個元素在網頁上跟隨網頁視窗大小變化始終保持上下左右居中網頁
- 附例項!實現iframe父窗體與子窗體的通訊
- 基於VUE的echart圖表自適應視窗大小變化外掛開發Vue
- mysql視窗函式中的滑動視窗MySql函式
- WinForm禁止窗體調整ORM
- C#窗體--滑鼠事件C#事件
- 視訊直播原始碼,提醒類彈窗,到時間後自動彈出原始碼
- 直播平臺原始碼,窗體透明的,黑暗度等的設定技巧原始碼
- 【程式碼隨想錄】一、陣列:4.滑動視窗陣列
- HazeOver for Mac(好用的虛化背景視窗軟體)Mac
- Winform中設定窗體縮小到右下角通知區域並點選後再次顯示窗體ORM