`
libran
  • 浏览: 193367 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

让VB自动改变控件大小

VB 
阅读更多

  让VB自动改变控件大小

                                                                  http://edu.cn700.com

     当窗体大小改变时,如何动态的改变控件的大小是许多VB 程序员头痛的事。有的人设置窗体Resizable 但却不改变控件的大小;有的人则根据控件的绝对位置与窗口大小相加减的办法来重新定位控件与改变大小,这种办法比较繁琐,且不可重用;当然也有人则限定窗口干脆不让改变。有没有一种简便易行的办法?答案是肯定的,下面给出一个一劳永逸的办法,源程序如下:

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

Private Sub Form_Load()
  Call ResizeInit(Me)  '在程序装入时必须加入
End Sub

Private Sub Form_Resize()
  Call ResizeForm(Me)  '确保窗体改变时控件随之改变
End Sub

   本例中给出了二个函数: ResizeInit 和 ResizeForm ,在调用 ResizeForm 之前必须先调用 ResizeInit。你可以将本程序拷到窗体代码段里,然后在窗体里加入任意控件即可进行测试。

分享到:
评论

相关推荐

    一劳永逸让VB自动改变控件大小

    ### 一劳永逸让VB自动改变控件大小 #### 概述 本文将详细介绍一个Visual Basic(VB)脚本示例,该脚本能够实现控件大小的自动调整,并根据用户需求显示或隐藏网格线。这个脚本适用于需要动态调整界面元素的应用场景...

    VB自动改变控件大小

    总结一下,VB自动改变控件大小的技术主要包括利用Resize事件、设置Anchor属性以及利用Layout事件。通过这些方法,开发者可以创建更加灵活和适应性强的用户界面,提升软件的整体质量和用户体验。在实际编程过程中,...

    让VB动态改变控件尺寸

    VB中的控件大小也能在运行时动态改变,你听说过吗?将鼠标放到VB窗体中的控件的边框上,鼠标也会变成双向指针,拖动鼠标即可改变控件大小。 那么我们如何让VB动态改变控件尺寸呢?本资源包含的源程序代码将为您...

    精彩编程与编程技巧-一劳永逸让VB自动改变控件大小...

    ### 知识点:VB自动调整控件大小的编程技巧 #### 1. 理解标题和描述 本篇文章将深入探讨一个实用且高效的编程技巧——如何在Visual Basic(简称VB)环境中实现控件大小的自动调整。该技巧旨在通过编写一段简单的...

    让VB控件大小随窗体的改变而改变

    Windows中的许多窗体都能任意改变... 那么我们如何让VB控件大小随窗体的改变而改变呢?本资源包含的源程序代码将为您解答。 本资源压缩包内包含实现此功能的所有代码(不含控件),简单修改即可适应您的要求。

    vb 鼠标 改变控件大小

    "vb 鼠标 改变控件大小"这个主题聚焦于如何利用鼠标事件来动态地改变VB应用程序中的控件尺寸。在VB中,我们可以监听鼠标事件,如`MouseDown`、`MouseMove`和`MouseUp`,实现自定义的控件大小调整功能。 首先,我们...

    VB 控件随窗体自动调整大小.rar

    VB 控件随窗体自动调整大小,像窗口中的ListBox、Image、FileListBox、VB.Frame控件等,都可以随窗口的大小变化而变化,当用户拖动改变窗口大小时,这些控件的大小也会随之改变,这个功能的实现得益于自定义函数Form...

    VB窗体控件大小随窗体大小变化而变化

    在VB编程环境中,有时我们需要创建的窗体控件能够随着窗体本身的大小调整而自动改变尺寸,以确保用户界面在不同分辨率下都能保持良好的显示效果。这个问题可以通过编写自定义的代码来解决,就像标题和描述中提到的...

    vb6.0控件适应窗体大小

    标题“vb6.0控件适应窗体大小”涉及的核心技术是如何使窗体上的控件随着窗体尺寸的变化而自动调整布局,以保持界面的美观和功能的完整性。以下将详细介绍这一知识点。 首先,VB6.0中的控件默认并不具备自动调整大小...

    VB控件随窗体大小改变

    在VB(Visual Basic)编程中,常常需要设计用户界面(UI),其中一项常见的需求是让控件随着窗体(Form)的大小改变而自动调整位置和尺寸。这涉及到窗体的Resize事件和控件的Anchor属性。下面我们将深入探讨如何实现...

    运行时拖动控件和改变大小(修改版)

    8. **边界检查**:在移动或调整控件大小时,应确保它们不会超出窗体的边界,可以通过添加边界检查来防止这种情况发生。 9. **控件的锚点和 dock 属性**:在更复杂的界面设计中,可以利用控件的`Anchor`或`Dock`属性...

    VB界面上控件自动调整

    1. **Anchor属性**:每个VB控件都有一个Anchor属性,用于指定控件在窗体调整大小时如何改变其位置和大小。 Anchor属性可以设置为一组边(Top, Bottom, Left, Right),表示窗体相应边缘移动时,控件会随之调整。例如...

    控件大小随窗体的改变而改变VB6.0源代码.rar

    标题“控件大小随窗体的改变而改变VB6.0源代码”表明这是一个示例项目,演示了如何使控件如按钮、文本框等自动调整大小以适应窗体的变化。这种功能在开发响应式用户界面时非常有用,确保程序在不同分辨率或屏幕尺寸...

    VB6 自动缩放窗体内控件

    在VB6(Visual Basic 6)编程环境中,自动缩放窗体内控件是一个常见的需求,尤其是在设计用户界面时,为了适应不同分辨率或屏幕尺寸的设备,开发者需要让控件能够根据窗口大小的变化自动调整其位置和大小。标题“VB6...

    VB控件大小自动化模块

    在VB(Visual Basic)编程环境中,控件大小的自动化管理是一项重要的任务,特别是在设计用户界面时,需要确保程序在不同屏幕尺寸和分辨率下都能正常显示。"VB控件大小自动化模块"就是为了应对这一挑战而创建的,它...

    控件大小随窗体大小变换[vb]

    在VB(Visual Basic)编程中,控件大小随窗体大小变换是一个常见的需求,尤其是在设计用户界面时。这种功能使得应用程序能自适应不同分辨率或窗口尺寸的变化,提供更好的用户体验。以下将详细介绍如何实现这一功能,...

    VB控件自动缩放

    "VB控件自动缩放"这一主题,就是解决如何让VB窗体及其控件在不同尺寸的显示器上自适应显示的问题。 在VB6及更早版本中,开发人员通常需要手动调整每个控件的位置和大小,以适应不同的屏幕分辨率。然而,随着Windows...

    Visual Basic 6 Resizer VB6控件动态位置大小调整

    原来的方式是在窗口的Resize事件中添加调整控件大小/位置的代码,这样做的话比较麻烦,要自己手动去计算宽度/偏移,然后将这些代码写死在程序中,以后增加控件或者调整布局都需要重新计算/修改代码,不利于维护. ...

    VB6实现不同分辨率控件大小改变

    本文将详细介绍如何通过VB6编程来实现不同分辨率下控件大小的自动改变,确保用户界面在不同屏幕尺寸和分辨率上都能保持良好的显示效果。 #### 一、问题背景 随着显示器技术的发展,用户使用的屏幕分辨率种类越来越...

    随窗体变化自动改变控件大小

    在编程领域,特别是涉及到图形用户界面(GUI)开发时,"随窗体变化自动改变控件大小"是一个常见的需求,特别是在设计响应式用户界面时。这个功能使得窗口内的控件如按钮、文本框等能够根据窗口尺寸的变化动态调整...

Global site tag (gtag.js) - Google Analytics