
正文
vb.net窗体自适应的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB 窗体控件分辨率自适应问题
Public Type CONTROLRECT Left As Single Top As Single Width As Single Height As SingleEnd Type Public Const HORZRES = 8Public Const VERTRES = 10Public Declare Function GetDesktopWindow Lib "user32" () As LongPublic Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As LongPublic Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As LongPublic Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long '取得界面原始控件的位置及大小,并保存到数组里Public Sub GetSourcePos(this As Object, rc() As CONTROLRECT, Optional bigFont As Boolean = True)
'On Error Resume Next
Dim tempX As Integer, tempY As IntegertempX = this.ScaleWidth '1024tempY = this.ScaleHeight '768 '此处原来如果在1024*768分辨率下显示正常的话,就可以直接赋值1024和768 Dim temp As Control Dim nSum As Integer nSum = 0 For Each temp In this '此处要注意,有些控件没有width,height等属性,在此要做出判断 If TypeOf temp Is ComboBox Then With rc(nSum) .Left = temp.Left / tempX .Width = temp.Width / tempX .Top = temp.Top / tempY End With ElseIf TypeOf temp Is Timer Then' 'none' ElseIf TypeOf temp Is StatusBar Then' 'none Else With rc(nSum) .Left = temp.Left / tempX .Width = temp.Width / tempX .Top = temp.Top / tempY .Height = temp.Height / tempY End With End If nSum = nSum + 1 NextEnd Sub '根据比例调整控件的大小Public Sub SetNewPos(this As Object, rc() As CONTROLRECT)
'On Error Resume Next Dim tempX As Integer, tempY As Integer tempX = this.ScaleWidth '1024 tempY = this.ScaleHeight '768 ' '如果初始界面显示始终是以最大化的方式显示的话,此处就可以调用系统分辨率进行设置tempx,tempy' hwnd = GetDesktopWindow()' ' Get the device context for the desktop' hdc = GetWindowDC(hwnd)' If hdc Then' Dim a As Long, b As Long' a = GetDeviceCaps(hdc, HORZRES)' b = GetDeviceCaps(hdc, VERTRES)' tempX = a' tempY = b' End If' ReleaseDC hwnd, hdc Dim temp As Control '//用于取各种控件 Dim nSum As Integer nSum = 0 For Each temp In this '此处要注意,有些控件没有width,height等属性,在此要做出判断 If TypeOf temp Is ComboBox Then temp.Left = rc(nSum).Left * tempX temp.Width = rc(nSum).Width * tempX temp.Top = rc(nSum).Top * tempY ElseIf TypeOf temp Is Timer Then 'none 'ElseIf TypeOf temp Is StatusBar Then 'none Else temp.Left = rc(nSum).Left * tempX temp.Width = rc(nSum).Width * tempX temp.Top = rc(nSum).Top * tempY temp.Height = rc(nSum).Height * tempY End If nSum = nSum + 1 Next End Sub
相关问答
Q1: VB窗体控件自动适应窗体大小
Dim f_size(1) As Long, fist_re As Boolean '用来存放窗体默认大小 以及 是否第一次初始化,全局变量,可在 模块中public声明
Private Sub Form_Resize()
If Me.WindowState 1 Then '必须排除最小化vb.net窗体自适应的状态
If fist_re = False Then '窗体初始化只记录窗体大小
f_size(0) = Me.Height: f_size(1) = Me.Width
fist_re = True
Else '否则开始适应屏幕变化
For Each a In Form1.Controls
On Error Resume Next
a.Width = a.Width * (Me.Width / f_size(1))
a.Height = a.Height * (Me.Height / f_size(0))
a.Top = a.Top * (Me.Height / f_size(0))
a.Left = a.Left * (Me.Width / f_size(1))
Next
f_size(0) = Me.Height: f_size(1) = Me.Width '重新记录窗口大小,用于下次运算
End If
End If
End Sub
''对于一些控件 如listboxvb.net窗体自适应的高度不适宜 呵呵
Q2: VB如何设置窗体背景图片随窗体大小自动调整?
Private Sub Form_Load();
Me.Picture = LoadPicture("E:\Users\xjn\Pictures\Lotus.jpg") '自己改图片路径;
Me.AutoRedraw = True;
End Sub;
Private Sub Form_Resize();
Me.PaintPicture Me.Picture, 0, 0, Me.Width, Me.Height;
End Sub。
延展回答:
VB表格打印控件:自动识别并支持ADO和DAO两种数据库链接,也可以不链接数据库.(可以链接数据控件,也可以链接数据对象dao/ado).支持合并单元格、对齐、支持单元格斜线、支持多种单元格格式,可自动设置行高列宽.支持表格导出到word。
“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
Q3: VS2013 VB.NET窗口控件怎么做自适应
窗体在改变大小时会有一个size事件的,在这个事件中写代码获取窗体的高度和宽度再根据窗体的高度和宽度的比例来效果自己的控件的高度宽度比例
Q4: vb.net 怎样将窗体和所有控件根据电脑分辨率固定?
Public Class Form1
Dim 初始化控件自动大小调整与窗口的宽度比例 As Integer
Dim 初始化控件自动大小调整与窗口的高度比例 As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
初始化控件自动大小调整与窗口的宽度比例 = Me.Width / 控件自动大小调整.Width
初始化控件自动大小调整与窗口的高度比例 = Me.Height / 控件自动大小调整.Height
显示控件的位置坐标()
End Sub
Private Sub Form1_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd
' Form1_ResizeEnd 这个事件是 窗口大小变化完成后 再进行操作的
控件自动大小调整.Location = New Point(控件自动大小调整.Left, 控件自动大小调整.Top)
'设置控件的初始左位置坐标 与 上位置坐标
控件自动大小调整.Size = New Point(Int(Me.Width / 初始化控件自动大小调整与窗口的宽度比例), Int(Me.Height / 初始化控件自动大小调整与窗口的高度比例))
'更改控件的大小 按第一次窗口的比例 进行调整
显示控件的位置坐标()
End Sub
Private Sub 显示控件的位置坐标()
Label1.Text = "控件的上边距坐标: " 控件自动大小调整.Top
Label2.Text = "控件的左边距坐标: " 控件自动大小调整.Left
Label3.Text = "控件的宽度大小: " 控件自动大小调整.Width
Label4.Text = "控件的高度大小: " 控件自动大小调整.Height
End Sub
End Class
vb.net窗体自适应的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net窗体自适应的信息别忘了在本站进行查找喔。







