精华内容
下载资源
问答
  • 当初在网上查找了很多类似代码,可惜都不能应用于VB2005版本,故对其进行了修改,基本实现了控件自动随窗体变化,特窃据为原创,呵呵,希望各位不要拍砖。  但是不适用于对于容器内部附件,故增加了对容器内...

       当初在网上查找了很多类似的代码,可惜都不能应用于VB2005版本,故对其进行了修改,基本实现了控件自动随窗体变化,特窃据为原创,呵呵,希望各位不要拍砖。

       但是不适用于对于容器内部的附件,故增加了对容器内控件的处理。

    '窗体中控件自动随窗体变化大小

    Option Explicit On
    Module ResizeFormCls
        Private FormOldWidth As Long
        '保存窗体的原始宽度
        Private FormOldHeight As Long
        '保存窗体的原始高度
        Private ControlOldWidth As Long
        '保存控件的原始高度
        Private ControlOldHeight As Long
        '在调用ResizeForm前先调用本函数 
        Public Sub ResizeInit(ByVal FormName As Form)
            Dim Obj As Control
            FormOldWidth = FormName.Size.Width
            FormOldHeight = FormName.Size.Height
            On Error Resume Next
            Dim i As Integer = 0
            For Each Obj In FormName.Controls
                Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
                i += 1
            Next Obj
            On Error GoTo 0

        End Sub

        '按比例改变表单内各元件的大小, 
        '在调用ReSizeForm前先调用0ReSizeInit函数 
        Public Sub ResizeForm(ByVal 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.Size.Width / FormOldWidth
            ScaleY = FormName.Size.Height / FormOldHeight

            On Error Resume Next

            For Each Obj In FormName.Controls
                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.Left = Pos(0) * ScaleX
                    Obj.Top = Pos(1) * ScaleY
                    Obj.Width = Pos(2) * ScaleX
                    Obj.Height = Pos(3) * ScaleY

                Next i
            Next Obj
            On Error GoTo 0
        End Sub

        '在调用ResizeControl前先调用本函数 
        Public Sub ResizeControlInit(ByVal ContorlName As Control)
            Dim Obj As Control
            ControlOldWidth = ContorlName.Size.Width
            ControlOldHeight = ContorlName.Size.Height
            On Error Resume Next
            For Each Obj In ContorlName.Controls
                Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
            Next Obj
            On Error GoTo 0

        End Sub
        '按比例改变容器内各元件的大小, 
        '在调用ResizeControl前先调用ResizeControlInit函数 

        Public Sub ResizeControl(ByVal ContorlName As Control)
            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 = ContorlName.Size.Width / ControlOldWidth
            ScaleY = ContorlName.Size.Height / ControlOldHeight

            On Error Resume Next

            For Each Obj In ContorlName.Controls
                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.Left = Pos(0) * ScaleX
                    Obj.Top = Pos(1) * ScaleY
                    Obj.Width = Pos(2) * ScaleX
                    Obj.Height = Pos(3) * ScaleY

                Next i
            Next Obj
            On Error GoTo 0
        End Sub
    End Module
    展开全文
  • 说明:工程用到自定义控件,数目不定,但按一定排列顺序(纵向或横向)在Panel容器上加载,其间涉及到滚动条使用。 Public Structure ItemPanelParam'自定义结构体 用来描述控件容器的一些视觉参数 Dim ...

    说明:工程中用到的自定义控件,数目不定,但按一定排列顺序(纵向或横向)在Panel容器上加载,其间涉及到滚动条的使用。

    Public Structure ItemPanelParam'自定义结构体 用来描述控件及容器的一些视觉参数
    Dim IsRowFirst As Boolean'确定是按行排列优先还是按列排列优先,True为按行排列优先。
    Dim IsAutoScroll As Boolean' 确定是否使用Panel的AuotScroll属性,若使用则对其控制度降低。
    Dim ItemCount As Int32' 存储当前需要显示的自定义控件(Item)的数目
    Dim Rows As Int32 '通知显示区域(Panel)可以显示的行数目
    Dim Cols As Int32'通知显示区域(Panel)可以显示的列数目
    Dim ItemWidth As Int32'存储自定义控件的宽度
    Dim ItemHeight As Int32' 存储自定义控件的高度
    Dim XMargin As Int32' 存储行内相邻自定义控件的间距宽度
    Dim YMargin As Int32' 存储列内相邻自定义控件的间距高度
    End Structure

    Dim IPP As ItemPanelParam ' 当前窗体的视觉参数
    Dim VSBar As New VScrollBar' 垂直滚动条,当panel的AuotScroll属性为false时可能使用
    Dim HSBar As New HScrollBar'水平滚动条,当panel的AuotScroll属性为false时可能使用
    Dim arrItem As New ArrayList ' 存储自定义控件时控件数组列表
    Dim TargeItemIndex As Int32 = 0 ' Using for the Display of Items

    Private Sub InitialIPP()
    '//初始化IPP, 每一个目的程序都要初始化一次
    IPP.IsRowFirst = chkIsRowFirst.Checked
    IPP.IsAutoScroll = chkIsAutoScroll.Checked
    IPP.ItemCount = NumUpDown.Value
    IPP.Rows = 2
    IPP.Cols = 5
    IPP.ItemWidth = 136
    IPP.ItemHeight = 200
    IPP.XMargin = 8
    IPP.YMargin = 8
    End Sub

    展开全文
  • vb 中的对象,控件和事件说明

    热门讨论 2017-07-26 10:50:33
    VB中,所谓对象,就是VB程序系统提供给编程人员使用各种“物体”,如:窗体(Form)、命令按(Command Button)、文本框(Text Box)等。 这些对象(Object) ,还可以由多个子对象构成。如电脑是一个对象,而...

    对象、属性、类

    1、对象(Object)

    在VB中,所谓对象,就是VB程序系统提供给编程人员使用的各种“物体”,如:窗体(Form)、命令按(Command Button)、文本框(Text Box)等。

    这些对象(Object) ,还可以由多个子对象构成。如电脑是一个对象,而电脑又是由CPU、内存、硬盘、主板、外设等多个部件(对象)组成,因此,电脑对象就由这多个子对象组成,“电脑”也可以称为这些子对象的一个“容器”(Container)对象。

     

    2、属性(Property)

    每个对象都有属于自己的特性,称为属性(Property)。如桌子,与之相关的属性有它的大小尺寸、颜色、材质质地等。在VB中,每个对象都有一组特定的属性,对这些属性进行描述的数据集合,称为属性栏。属性栏中记录的对象属性数据叫做属性值。对象属性设置的方法一般有两种:

    1. 预设法:在进行可视化程序界面设计时,利用属性窗口设置对象的属性。方法为:在属性窗口中选中要设置的属性,然后在窗口的右列中键入新的数值进行预设。

    2. 程序更改法:在程序设计中通过属性更改命令语句更改对象的某个属性。方法为:

      1. 对象名.属性名=属性值

      2.  “对象名.属性名”这种表达方式,是VB中引用对象属性的基本方法。

     

    3、类

    具有相同属性、或是大多数属性相同的对象,称为同一类对象。如气球,有红色的,黄色的;有圆的、扁的,但都是气球,这些不同形状或颜色的气球属于同一类对象。而电脑和气球就完全不能算是同一类对象,因为它们的属性区别太大。

     

    控件

    VB中的控件通常有3种类型

    第一种:内部控件。由VB系统提供的在默认条件下工具箱中显示的所有控件都是内部控件,如各种按钮控件、文本框、列表框等控件。这些控件被封装在VB的EXE文件中,不可以从工具箱中删除。编程人员可以直接将工具箱中显示的控件图标用鼠标拖到编辑平台上进行编辑

    第二种:ActiveX控件。这种类型的控件由VB系统单独保存在.ocx类型文件中,其中包括各种版本VB提供的控件,如数据绑定网格、数据绑定组合框等

    第三种:可插入对象。由编程人员根据需要插入到工具箱中的特殊对象,如Word文档、Excel工作表、Powerpoint幻灯片等,可以作为一个对象添加到工具箱中,供编程时随时使用。在工具箱中,每个控件都由一个特定形状的图标按钮表示

              事件说明

              Click                 单击鼠标事件

              DblClick           双击鼠标事件

              Load                加载窗体事件

              Unload             卸载窗体事件 

              Resize              控件大小改变事件

              Change            控件内容改变事件

              KeyDown          键盘按键按下事件

              KeyUp              键盘按键松开事件

              KeyPress         按下可显示字符键事件

              MouseDown     鼠标按下事件

              MouseUp         鼠标松开事件

              MouseMove     鼠标移动事件

          

     

    简做总结,如有不足,欢迎指出!

     
    展开全文
  • vb.net中,当要获取某一控件在窗体中的位置时,可以使用Control.PointToScreen 方法转换成屏幕坐标也可以使用Control.PointToClient 方法将屏坐标转换成工作区坐标;当控件属于其它容器控件时须使用: Dim p As ...

    在vb.net中,当要获取某一控件在窗体中的位置时,可以使用Control.PointToScreen 方法转换成屏幕坐标

    可以使用Control.PointToClient  方法将屏坐标转换成工作区坐标;当控件属于其它容器控件时须使用:

           Dim p As Point = Control.Parent.PointToScreen(Control.Location)
            p = Control.FindForm.PointToClient(p)

    使用如上方法,无论控件放在何容器中,都会得到该控件相对于窗体上的工作区坐标。


    =================================================================================

    坐标简介

    =================================================================================

    Windows 窗体的坐标系基于设备坐标,在 Windows 窗体中绘制时的基本量度单位是设备单位(通常为像素)。屏幕上的点通过 x 和 y 坐标对描述,x 坐标向右递增,y 坐标从上往下递增。原点相对于屏幕的位置因指定的是屏幕坐标还是工作区坐标而异。

    屏幕坐标

    Windows 窗体应用程序用屏幕坐标指定窗口在屏幕上的位置。对于屏幕坐标而言,原点是屏幕的左上角。窗口的完整位置通常用 Rectangle 结构来描述,该结构包含定义窗口的左上角和右下角的两个点的屏幕坐标。

    工作区坐标

    Windows 窗体应用程序使用工作区坐标指定窗体或控件中的点的位置。工作区坐标的原点是控件或窗体的工作区的左上角。工作区坐标确保了无论窗体或控件在屏幕上的位置如何,应用程序在窗体或控件中绘制期间都可以使用一致的坐标值。

    工作区的尺寸也用 Rectangle 结构来描述,该结构包含该区域的工作区坐标。在所有情况下,矩形的左上角坐标都包含在工作区中,而右下角坐标则排除在工作区之外。图形操作不包括工作区的右边缘和下边缘。例如,FillRectangle 方法将一直填充到指定矩形的右边缘和下边缘,但是不包括这两条边。

    从一类坐标映射到另一类坐标

    您可能偶尔需要从屏幕坐标映射到工作区坐标。通过使用 Control 类中的 PointToClient 和 PointToScreen 方法,可以轻松实现这一映射。例如,Control 的 MousePosition 属性用屏幕坐标报告,但是您可能想将它们转换成工作区坐标。

     
    展开全文
  • 常正情况下Mdi子窗体只能表现到父窗体的容器,但是在设计时父窗体常常不能参加基本的互交控件,为了够能参加按钮、文本框等的基本控件我们常常在父窗体的容器内参加能作为容器的控件如Panel、PictureBox等的容器...
  • VB.NET设置控件和窗体显示级别

    千次阅读 2013-05-05 23:38:26
    正常情况下Mdi子窗体只能显示到父窗体的容器,但是在设计时父窗体往往不能加入基本的交互控件,为了能够加入按钮、文本框等的基本控件我们常常在父窗体的容器内加入能作为容器的控件如Panel、PictureBox等的容器...
  • 一个VB窗体容器实例,一个仿XP风格Frame容器使用示例,是一个控件的使用例子,例子展现了10多种不同颜色的VB Frame容器效果。
  • 内容索引:VC/C++源码,控件相关,ActiveX 来自孙鑫讲解实例 ,内含PPT幻灯片讲义。ActiveX控件的应用与工作原理。ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性...在VB和VC访问ActiveX控件
  • VB.NET控件数组的应用,帮户开发人员大大提高了编程效率,我们可以直接使用Form容器控件集合来操作VB.NET控件数组。 ...普通控件仅使用名称就可以识别,而引用控件数组中的成员则需要同时使用
  • 同时修改了1.x版本中控件在退出程序前不会被释放及其导致一系列问题.VB6ResizerLib 2.2 修正了2.0版本使用DesignTimeInit模式时候可能会导致VB崩溃问题.使用说明:启动VB程序,打开一个工程.按Ctrl+T打开部件...
  • 这是一个模仿QQ主窗体能缩进屏幕边缘...而其他容器是不支持,所以你不能把它放到UserControl设计器上(ActiveX 控件 设计器)】,当中源码开放,也很简单。还有OCX文件时编译好的控件,直接在部件添加也可以。
  • 框架类控件主要包括Panel控件面板、GroupBox控件(分组框)、多页面TabControl控件 这些都可以直接在【工具栏】【容器找到 1、Panel控件 可以利用面板控件把其他的控件组织在一起形成控件组。要组成控件组,...
  • 为 UITypeEditor 提供一个接口,用于显示 Windows 窗体,或者在设计模式下在属性网格控件的下拉区域显示控件。 注意一个问题:设计模式与生成dll文件加载显示结果不同,这就是为什么会在设计模式时运行显示灰色...
  • 学习界面设计4个对象:窗体、命令按钮、标签、文本框1、窗体Form 窗体文件扩展名.frm窗体是放置VB提供各种控件的一个容器,在窗体上设计和编辑应用程序界面。窗体添加(工程→添加窗体);修改(在窗体设计器...
  • VB讲课笔记06:窗体与常用控件

    千次阅读 2018-03-10 17:24:29
    窗体是VB中最基本的对象,是应用程序的基本组成部分,是菜单栏、工具栏和控件等对象的容器,是应用程序与用户交互的窗口或对话框。窗体设计是整个VB应用程序设计的基础。一个窗体对应一个代码模块。 1、窗体设计...
  • -----ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作,并且可以嵌入在包容器宿主应用程序中,ActiveX控件的前身就是OLE控件。...如:在VC++中开发ActiveX控件,不作任何修改即可应用于VB中
  • Option Explicit ...'函数(显示图片的容器,图片路径) Private Sub Image_Scaling(P As Object, URL As String) Dim RX1 As Long, RY1 As Long, RX2 As Long, RY2 As Long, Pic As New StdPicture Dim Ret.
  • 借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。 13、特殊文字效果打印功能。控件具有打印浮雕文字、阴影文字、空心文字...
  • VB中实现地图操作方法

    千次阅读 2010-04-27 10:13:00
    1. 在VB的Form设计时,加入一个picturebox控件,这个控件作为OLE容器,MapInfo中的地图将在该控件上显示。2. 执行VB的函数Createobject(“MapInfo.Application”),启动MapInfo。这时MapInfo在后台启动,对用户来说...
  • 借助该函数,您只需要在您的容器控件中设计好要打印的内容及打印内容的相对位置,控件轻松帮你打印出来(如果超过一页,控件会自动换页续打)。 13、特殊文字效果打印功能。控件具有打印浮雕文字、阴影文字、空心文字...
  • 浅谈Vb中的坐标问题

    2004-11-04 20:15:00
    vb中的Form,Picture等容器控件都具有和Scale相关的属性,Scale属性其实就是用来实现自定义这些容器的坐标系统的。和Scale有关的属性有:ScaleTop,ScaleLeft,ScaleWidth,ScaleHeight等,下面简单的介绍一下。 ...
  •  具体操作按以下步骤进行: 第一步:建立一个容器 启动Visual Basic 6.0,在新建工程对话框选择"标准EXE",单击"确定"按钮,建立一个启动过程,作为用户控件的容器。窗体的Caption属性设置为"通信卡片测试"。 ...
  • VB中坐标系统

    千次阅读 2007-09-05 11:47:00
    一、 vb中的Form,Picture等容器控件都具有和Scale相关的属性,Scale属性其实就是用来实现自定义这些容器的坐标系统的。和Scale有关的属性有:ScaleTop,ScaleLeft,ScaleWidth,ScaleHeight等,下面简单的介绍...
  • 摘要:VC/C++源码,系统相关,ActiveX VC++使用ActiveX控件编程实例源码下载,ActiveX控件的应用与工作原理。ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性存储,...在VB和VC访问ActiveX控件
  • 版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 之前有网友留言问Panel控件的讲解,其实我...基本上,容器都是用来放置其它控件的,在容器中的控件受...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 131
精华内容 52
关键字:

vb中的容器控件