精华内容
下载资源
问答
  • VB图形控件pictureBox和Image控件

    千次阅读 2020-09-16 10:39:02
    PictureBox和Image控件都属于图形控件,可以为用户显示图片和图形。两者之间既有相似又存在区别。本节课程将带领小伙伴们学习掌握这两个控件。 PictureBox控件 PictureBox的常用属性 AutoRedraw属性 作用:返回或...

    PictureBox和Image控件都属于图形控件,可以为用户显示图片和图形。两者之间既有相似又存在区别。本节课程将带领小伙伴们学习掌握这两个控件。

    在这里插入图片描述

    PictureBox控件

    PictureBox的常用属性

    AutoRedraw属性

    作用:返回或设置一个值,该值用来确定是否自动重绘PictureBox上的图形。

    语法:

    对象名称.AutoRedraw [ =值 ]
    

    值:boolean类型,当值为True时,系统在会自动重绘,相反为False时不会自动重绘。

    PicturBox作为少有的可以使用print、Line等方法打印文本和图形的控件,该属性与窗体对象的AutoRedraw属性性质一样。在此不做详细解释了,忘记的小伙伴可以回顾下窗体那节课程。

    AutoSize属性

    作用:返回或设置一个值,该值用于确定控件是否自动改变大小以显示全部内容

    语法:

    对象名称.AutoSize [ =值 ]
    

    值:boolean类型,默认值为False

    Picture属性

    作用:设置一个图片路径,用于确定PictureBox控件显示的图片。

    语法:

    对象名称.Picture [ =LoadPicture("路径") ]
    

    PictureBox控件可以支持以下格式:Bitmap、Icon、Metafile、GIF、JPEG

    PictureBox的常用方法

    PictureBox的方法除了Print方法外,其它的方法大多数为绘制图形的的方法,如Circle绘制圆、Line绘制直线等,这些都属于图形知识,将会在下一阶段的中级课程中专门讲解,此处不做介绍。本节课程着重使用其显示图片的功能。

    Image控件

    Image控件的常用属性

    Picture属性:同PictureBox的Picture属性一样。

    Stretch属性

    作用:返回或设置一个值,用来决定一个图片是否需要调整大小以适应Image控件大小。

    语法:

    对象名称.Stretch [ =值 ]
    

    值:boolean类型,取值为True时,图形将会自动调整大小,以适应Image控件的大小,保证可以显示全部的图形。取值为False时,图形的大小不会自动改变,而是会自动改变Image控件去适应图片的大小。

    Stretch属性与PictureBox的AutoSize有所相似,但区别在于,PictureBox的AutoSize设置为True时,是控件自动改变大小以适应图形,而Image控件的Stretch属性设置为True时,是图形自动改变大小以适应控件。

    实战操作练习:

    目的:掌握PictureBox的AutoSize属性以及Image的Stretch属性的使用方法以及之间的区别。

    步骤一:新建工程,并按照下图布局窗体,创建一个PictureBox控件、一个Image控件,以及4个命令按钮控件。

    在这里插入图片描述

    步骤二:修改命令按钮的Caption属性

    在这里插入图片描述

    步骤三:准备一张图片,最好是JPG格式,可以在百度上找一个。并且最好不要寻找矿都和高度过大的图片,否则全尺寸显示的话,窗体可能放不下,导致观察效果不便。下载好图片后,将图片的地址路径复制下来,以备后用。复制图片地址路径的方法为,选中图片——右键——属性——安全——对象名称。

    在这里插入图片描述

    步骤四:编辑代码,按照下图进行各事件过程编写。注意,图片的地址放在LoadPicture(“地址”)函数中,并放在英文状态的双引号之中。

    在这里插入图片描述

    步骤五:运行程序,测试效果。单击不同的按钮,以观察图片和控件的变化效果,思考它们之间的区别。

    在这里插入图片描述

    通过这个案例,可以发现在不同的属性设置下,图片的显示效果是不一样的。对于PictureBox控件而言,实际上不论AutoSize属性设置为True或False都不会影响图片的尺寸,只会影响该控件的尺寸。而对于Image控件来说,Stretch属性设置为True时,图片的长宽将会自动拉伸到与Image控件的长高一致,因此图片可能会有变形。当Stretch设置为False时,Image的控件宽度和高度将会自动去适应图片的宽度和高度。

    根据这两个控件显示图片的效果不同,我们可以在不同的场景选择合适的控件以达到自己的预期效果。

    好啦,本节课程就到这里啦,我们下节课程再见吧。

    展开全文
  • 直接用VB6代码生成二维码,我也把代码做成了控件的方式,...VB生成二维码图形控件,非常好用,含使用范例源码,VB生成二维码图形控件,非常好用,含使用范例源码,VB生成二维码图形控件,非常好用,含使用范例源码
  • 博智成/条码公社,是为广大用户提供二维码编码、解码和自动认别等核心技术,提供系统集成...二维码种类包括:PDF417,Qr_Code,DataMatrix和MaxCode,Aztec等,开发包括:WEB制码、客户端制码、屏幕识读、手机自动识别等。
  • vb.net 图形控件 A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. 不久前,...

    vb.net 图形控件

    A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way.

    不久前,我正在开发Windows Forms应用程序,我需要一个特殊的具有反射(玻璃)效果的标签控件,以一种时尚的方式显示一些标题。

    The GlassLabel control at work.

    Mmmm... thinking deeply about it I realized that it would not be too difficult to build my own, so hands on!  First of all, I wrote my requirements list (and I added more and more things as soon as they popped into my head!).  The final requirement list was like this:

    嗯...对此深思熟虑,我意识到自己打造自己并不困难,所以动手吧! 首先,我写了我的需求列表(一旦它们出现在我的脑海里,我就添加了越来越多的东西!)。 最终需求列表如下:

    It must be a true label control.

    它必须是真正的标签控件。



    It will show a reflection or glass effect of the text drawn.

    它将显示所绘制文本的反射或玻璃效果。



    The control's background can be filled with solid or gradient colors.

    控件的背景可以填充纯色或渐变色。



    The control's text can be filled with solid or gradient colors, too.

    控件的文本也可以用纯色或渐变色填充。



    The text can draw (or not) a solid-color outline with configurable width.

    文本可以绘制(或不绘制)具有可配置宽度的纯色轮廓。



    The level of transparency must be configurable, too.

    透明度级别也必须是可配置的。



    Once done, I thought that writing an article focusing on the graphics work for this control would be a good idea. So I will comment on what I've done and why I did it and will finish my article with the complete code listing of the control.

    完成后,我认为写一篇专注于该控件图形工作的文章将是一个好主意。 因此,我将评论我所做的事情以及为什么这么做,并以控件的完整代码清单结束我的文章。

    1.如果是标签,则为标签 (1. If it's a Label, then it's a Label)

    As said in my requirements list, the control must be a true label control. So I started creating a new class and inheriting it from the standard WinForms Label control.

    如我的需求列表中所述,该控件必须是真正的标签控件。 因此,我开始创建一个新类,并从标准WinForms Label控件继承它。

    Public Class GlassLabel
        Inherits System.Windows.Forms.Label
    End Class
    
    'The AutoSize property has been overridden to achieve the control
    'not to be auto-sized.
    Public Overrides Property AutoSize() As Boolean
        Get
            Return MyBase.AutoSize
        End Get
        Set(ByVal value As Boolean)
            MyBase.AutoSize = False
        End Set
    End Property
    
    'The TextAlign property has been overridden to achieve the control text
    'be aligned always at Middle-Center.
    Public Overrides Property TextAlign() As System.Drawing.ContentAlignment
        Get
            Return MyBase.TextAlign
        End Get
        Set(ByVal value As System.Drawing.ContentAlignment)
            MyBase.TextAlign = ContentAlignment.MiddleCenter
        End Set
    End Property
    

    Finally, I have overridden completely the OnPaint method, because I don't want .Net to draw the control -- I want to do it myself with my requirements. Really, all the work is done in the OnPaint overridden method:

    最后,我完全重写了OnPaint方法,因为我不希望.Net绘制控件-我想根据自己的需要进行操作。 确实,所有工作都是通过OnPaint重写方法完成的:

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        'All the painting work is done here.
        ...
    End Sub
    

    2.渐变 (2. Gradients)

    该控件支持背景和文本的渐变。 借助GDI +,渐变是.Net中最简单的操作之一。 实际上,.Net为我们提供了一个名为LinearGradientBrush的自定义笔刷,我们只需要为其提供绘制矩形(需要计算渐变的步数),开始和结束颜色以及渐变的方向即可(水平,垂直或对角线)。 就这么简单:
    Dim gradBrush As LinearGradientBrush = New LinearGradientBrush(rectangle, color1, color2, direction)
    Graphics.FillRectangle(gradBrush, rectangle)
    

    In the complete listing of GlassLabel control you'll find some code in which I use gradients, and you'll see how easy is to use them.

    在GlassLabel控件的完整列表中,您将找到一些我在其中使用渐变的代码,并且您会看到使用它们的简便性。

    3.大纲 (3. Outline)

    有一些方法可以将文本绘制到Graphics对象中。 最基本的方法是使用DrawString方法,该方法带有一些参数(文本,字体,大小,位置...),并使用所需的画笔绘制文本。

    But for the outline requirement I needed more functionality than DrawString offers. So I used GraphicsPath object. As MSDN says, GraphicsPath represents a series of connected lines and curves. Applications use paths to draw outlines of shapes, fill the interiors of shapes, and create clipping regions. Best of all, the GraphicsPath object provides with it's own AddString method, so we just need to call AddString on the GraphicsPath and it creates a path that outlines the string passed. After that, you can both draw the string outline or fill its contents.

    但是对于大纲要求,我需要比DrawString提供的功能更多。 所以我用了GraphicsPath对象。 正如MSDN所说,GraphicsPath代表一系列连接的直线和曲线。 应用程序使用路径绘制形状的轮廓,填充形状的内部以及创建剪切区域。 最棒的是,GraphicsPath对象提供了它自己的AddString方法,因此我们只需要在GraphicsPath上调用AddString,它会创建一个概述所传递字符串的路径。 之后,您既可以绘制字符串轮廓,也可以填充其内容。

    Dim path As GraphicsPath = New GraphicsPath
    path.AddString(text, fontFamily, fontStyle, emSize, clippingRect, stringFormat)
    Graphics.DrawPath(pen, path)
    Graphics.FillPath(brush, path)
    

    4.反思 (4. Reflection)

    显而易见,要求的难度更大是玻璃或反射效果。 与GDI +中的几乎所有内容一样,有很多方法可以做到这一点。 但是我认为我可能使用了所有方法中最简单的方法。

    A graphics object supports a series of transformations that can affect to his size, rotation angle, etc. Once one of this transformation is applied to a graphics object, all the painting work done over the object is affected by the transformations done. This transformations can be cumulative and that gives us an extremely powerful mechanism to work with graphics.

    图形对象支持一系列可能影响其大小,旋转角度等的变换。一旦将此变换中的一个应用于图形对象,在该对象上完成的所有绘制工作都会受到所完成的变换的影响。 这种转换可以是累积的,这为我们提供了一种非常强大的处理图形的机制。

    In this case I did a really simple transformation: I "said" to my graphics object that all the painting must be affected by a scale transformation. The scale applied is 1 for the horizontal axis (so no transformation) and -1 for the vertical axis (so no transformation in size but vertically reflected). It's as simple as that. You'll find the complete sample in the code listing at the end of the article.

    在这种情况下,我做了一个非常简单的转换:我对图形对象“说”所有画都必须受到比例转换的影响。 对于水平轴,应用的比例为1;对于垂直轴,应用的比例为-1(因此,尺寸没有变化,但垂直反射)。 就这么简单。 您可以在本文结尾的代码清单中找到完整的示例。

    Graphics.ScaleTransform(1, -1)
    

    完整清单
    (The Complete Listing
    )

    好吧,信不信由你,使用这几个GDI +对象,就可以完成所有工作。 这是我的GlassLabel控件的完整列表代码。 该代码的注释很好,我认为您可以轻松地遵循它。

    As a suggestion for further work, maybe it would be a good idea to not override the TextAlign property and make it work in the control as expected, re-calculating the position for each one of the possible values.  Another interesting challenge would be to find a way to show the reflection effect in perspective.

    作为进一步工作的建议,最好不要重写TextAlign属性,并使其按预期方式在控件中工作,然后重新计算每个可能值的位置。 另一个有趣的挑战是找到一种方法来透视显示反射效果。

    Imports System.Drawing
    Imports System.Drawing.Drawing2D
    Imports System.Drawing.Imaging
    
    Public Class GlassLabel
        Inherits System.Windows.Forms.Label
    
        'Variables to hold properties values
        'Each initialization values represent the default value for the property
        Private m_BackGradientColor1 As Color = Color.Black
        Private m_BackGradientColor2 As Color = Color.White
        Private m_BackGradientMode As LinearGradientMode = LinearGradientMode.Horizontal
        Private m_BackGradient As Boolean = False
        Private m_Alpha As Integer = 100
        Private m_ForeGradientColor1 As Color = Color.Purple
        Private m_ForeGradientColor2 As Color = Color.White
        Private m_ForeGradientMode As LinearGradientMode = LinearGradientMode.Vertical
        Private m_ForeGradient As Boolean = False
        Private m_OffsetY As Integer = 0
        Private m_OutlineColor As Color = Color.White
        Private m_OutlineWidth As Integer = 0
    
        'This property get/set text outline border color
        Public Property OutlineColor() As Color
            Get
                Return m_OutlineColor
            End Get
            Set(ByVal value As Color)
                m_OutlineColor = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set text outline border width
        'If set to zero, then it's not outline
        Public Property OutlineWidth() As Integer
            Get
                Return m_OutlineWidth
            End Get
            Set(ByVal value As Integer)
                m_OutlineWidth = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set an integer value that represents
        'the number of pixels that must close up the normal text and
        'the reflected text. As MeasureString considers special characters
        'and glyphos, it returns vertically an extra space. The OffsetY
        'property tells the control to dispose N pixels of space between
        'the drawn texts.
        Public Property OffsetY() As Integer
            Get
                Return m_OffsetY
            End Get
            Set(ByVal value As Integer)
                m_OffsetY = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating if draw the texts
        'using a gradient fill (true) or a solid fill (false)
        Public Property ForeGradient() As Boolean
            Get
                Return m_ForeGradient
            End Get
            Set(ByVal value As Boolean)
                m_ForeGradient = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating the direction of
        'the texts gradient fill
        Public Property ForeGradientMode() As LinearGradientMode
            Get
                Return m_ForeGradientMode
            End Get
            Set(ByVal value As LinearGradientMode)
                m_ForeGradientMode = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating the second color of
        'the texts gradient fill
        Public Property ForeGradientColor2() As Color
            Get
                Return m_ForeGradientColor2
            End Get
            Set(ByVal value As Color)
                m_ForeGradientColor2 = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating the first color of
        'the texts gradient fill
        Public Property ForeGradientColor1() As Color
            Get
                Return m_ForeGradientColor1
            End Get
            Set(ByVal value As Color)
                m_ForeGradientColor1 = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value that represents the level of
        'transparency in the reflected text. Values must be between 0 and 255.
        'The lower value, reflected text is more transparent.
        'The higher value, more opaque.
        Public Property Alpha() As Integer
            Get
                Return m_Alpha
            End Get
            Set(ByVal value As Integer)
                m_Alpha = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating if draw the control's background
        'using a gradient fill (true) or a solid fill (false)
        Public Property BackGradient() As Boolean
            Get
                Return m_BackGradient
            End Get
            Set(ByVal value As Boolean)
                m_BackGradient = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating the direction of
        'the control's background gradient fill
        Public Property BackGradientMode() As LinearGradientMode
            Get
                Return m_BackGradientMode
            End Get
            Set(ByVal value As LinearGradientMode)
                m_BackGradientMode = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating the second color of
        'the control's background gradient fill
        Public Property BackGradientColor2() As Color
            Get
                Return m_BackGradientColor2
            End Get
            Set(ByVal value As Color)
                m_BackGradientColor2 = value
                Me.Invalidate()
            End Set
        End Property
    
        'This property get/set a value indicating the first color of
        'the control's background gradient fill
        Public Property BackGradientColor1() As Color
            Get
                Return m_BackGradientColor1
            End Get
            Set(ByVal value As Color)
                m_BackGradientColor1 = value
                Me.Invalidate()
            End Set
        End Property
    
        'The AutoSize property has been overridden to achieve the control
        'not to be auto-sized.
        Public Overrides Property AutoSize() As Boolean
            Get
                Return MyBase.AutoSize
            End Get
            Set(ByVal value As Boolean)
                MyBase.AutoSize = False
            End Set
        End Property
    
        'The TextAlign property has been overridden to achieve the control text
        'be aligned always at Middle-Center.
        Public Overrides Property TextAlign() As System.Drawing.ContentAlignment
            Get
                Return MyBase.TextAlign
            End Get
            Set(ByVal value As System.Drawing.ContentAlignment)
                MyBase.TextAlign = ContentAlignment.MiddleCenter
            End Set
        End Property
    
        'All the paintint work is done here.
        Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            With e.Graphics
                '*** Apply high-quality properties to the graphics object ************************
                .CompositingQuality = CompositingQuality.HighQuality
                .InterpolationMode = InterpolationMode.HighQualityBicubic
                .PixelOffsetMode = PixelOffsetMode.HighQuality
                .SmoothingMode = SmoothingMode.HighQuality
                .TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
    
                '*** Draw the control's background ***********************************************
                If Me.BackGradient Then
                    'The background must show a gradient, so we need to create a gradient brush
                    'and fill the control's background rectangle with this gradient
                    Using bkg As LinearGradientBrush = New LinearGradientBrush(e.ClipRectangle, Me.BackGradientColor1, Me.BackGradientColor2, Me.BackGradientMode)
                        .FillRectangle(bkg, e.ClipRectangle)
                    End Using
                Else
                    'The background is a solid color. The Clear method of the Graphics object
                    'let us to choose a color to clear the background.
                    .Clear(Me.BackColor)
                End If
                '*********************************************************************************
    
                '*** Create and draw the normal (not reflected) text *****************************
                'Get the text width & height
                Dim width As Single = .MeasureString(Me.Text, Me.Font).Width
                Dim height As Single = .MeasureString(Me.Text, Me.Font).Height
    
                'Create a rectangle that delimites the position & size of the text drawn
    
                'The x position must be (control width - text width) / 2, so the text will be
                'horizontally centered
                Dim xpos As Single = (e.ClipRectangle.Width - width) / 2
    
                'The y position must be also vertically centered, so we start from
                '(control height - text height) / 2
                'But below the normal text will be the reflected text, so must offset to top
                'the half of text height
                'Additionally, MeasureString give us extra space reserved for tall glyphos,
                'so must consider the OffsetY value to delete this extra space, so must offset
                'to bottom the half of OffsetY value
                Dim ypos As Single = ((e.ClipRectangle.Height - height) / 2) - (height / 2) + (Me.OffsetY / 2)
    
                'Finally, create the rectangle from x,y pos and width & height of the text
                Dim originalRect As New RectangleF(xpos, ypos, width, height)
    
                'Draw the original string. We'll use a GraphicsPath object instead
                'using DrawString directly, because GraphicsPath will let us draw an
                'outline border to the text
    
                'Create the path
                Dim path As GraphicsPath = New GraphicsPath
    
                'Add the string to the path. Because GraphicsPath's AddString method
                'uses emSize (the height of the em square box that bounds the character)
                'instead of Point, we must convert out font's Point size to emSize using
                'this formula: (Vertical Resolution / 72) * Font's Point Size
                path.AddString(Me.Text, Me.Font.FontFamily, Me.Font.Style, (.DpiY / 72) * Me.Font.Size, originalRect, StringFormat.GenericDefault)
    
                'If and outline must be drawn, draw it
                If Me.OutlineWidth > 0 Then
                    Using p As Pen = New Pen(Me.OutlineColor, Me.OutlineWidth)
                        .DrawPath(p, path)
                    End Using
                End If
    
                'Create the brush to fill the text
                Dim fill As Brush
                If Me.ForeGradient Then
                    'Text must be filled with a gradient brush
                    fill = New LinearGradientBrush(originalRect, Me.ForeGradientColor1, Me.ForeGradientColor2, Me.ForeGradientMode)
                Else
                    'Text must be filled with a solid brush
                    fill = New SolidBrush(Me.ForeColor)
                End If
    
                'Fill the text and destroy the brush
                .FillPath(fill, path)
                fill.Dispose()
    
                'The GraphicsPath object won't be needed anymore
                path.Dispose()
    
                'From this point we must deal with reflected text. So it's a good idea to
                'save the current state of our graphics object. What is really saved is the
                'state of the objects (transformations applied, etc), not the drawings done
                'until here.
                Dim state As GraphicsState = .Save
    
                'Reset the transformations done until here so we start from a "fresh clean"
                'graphics object state.
                .ResetTransform()
    
                'ScaleTransform will set the graphics object into a state in which all the
                'drawings done after the instruction will be affected by the scaling done.
                'As we use 1 for horizontal value, the drawings will be not changed in the
                'horizontal plane. But as we use -1 for the vertical value, all the drawings
                'will be vertically inverted (the reflection effect that we want).
                .ScaleTransform(1, -1)
    
                'Now, as we did for the normal text, we'll create a rectangle that delimites
                'the position and size of the reflected text
    
                'The x-position must not be changed, as it is the same (horizontally centered)
    
                'The y-pos must be vertically centered, so we start from
                '(control height - text height) / 2
                'From there, as we did with normal text, we must offset the half of the text height
                '(in this case, offset to top)
                'Also must offset the OffsetY value, to top too
                'BUT we must remember that this will be drawn over a transformed (Scaled)
                'graphics object, so must invert all signs (for example, offset to bottom instead
                'to top)
                ypos = (((((e.ClipRectangle.Height - height) / 2) + (height / 2)) * -1) - height) + (Me.OffsetY / 2)
    
                'Create the rectangle
                Dim reflectedRect As New RectangleF(xpos, ypos, width, height)
    
                'Create the path to hold the text
                Dim reflectedPath As GraphicsPath = New GraphicsPath
    
                'Add the string to the path
                reflectedPath.AddString(Me.Text, Me.Font.FontFamily, Me.Font.Style, (.DpiY / 72) * Me.Font.Size, reflectedRect, StringFormat.GenericDefault)
    
                'Draw the outline, if it applies
                If Me.OutlineWidth > 0 Then
                    'Note that we apply alpha transparency to the outline. If not, reflected
                    'text's outline will appear too much "solid"
                    Using p As Pen = New Pen(Color.FromArgb(Me.Alpha, Me.OutlineColor), Me.OutlineWidth)
                        .DrawPath(p, reflectedPath)
                    End Using
                End If
    
                'Create the brush to fill the reflected text
                If Me.ForeGradient Then
                    'We must apply Alpha transparency on both gradient colors
                    fill = New LinearGradientBrush(reflectedRect, Color.FromArgb(Me.Alpha, Me.ForeGradientColor1), Color.FromArgb(Me.Alpha, Me.ForeGradientColor2), Me.ForeGradientMode)
                Else
                    'Apply Alpha to solid color too
                    fill = New SolidBrush(Color.FromArgb(Me.Alpha, Me.ForeColor))
                End If
    
                'Draw the text (it will be automatically reflected because of the Scale
                'transformation applied)
                .FillPath(fill, reflectedPath)
    
                'Destroy objects that are no more needed
                fill.Dispose()
                reflectedPath.Dispose()
    
                'Restore the Graphics object state (eliminate transformations, so if we drew
                'anymore from here will not be reflected)
                .Restore(state)
                '*********************************************************************************
            End With
        End Sub
    End Class
    

    翻译自: https://www.experts-exchange.com/articles/3623/Having-fun-with-graphics-a-VB-net-GlassLabel-control.html

    vb.net 图形控件

    展开全文
  • vb测试图形控件两个计时器同时达到某一条件是出现一种状态
  • VB生成二维码图形控件,非常好用,含使用范例源码
  • VB为编程人员提供了强大的绘图功能支持,在Visual Basic中,主要通过两种办法进行图像绘制:一种是利用 ActiveX 控件,如用图形框显示图片;另外一种是通过使用VB 语言本身的函数和方法,通过在屏幕上绘制点、线和...

    主讲老师:郭盛华

     

    图形与图像控件:

     

    VB为编程人员提供了强大的绘图功能支持,在Visual Basic中,主要通过两种办法进行图像绘制:一种是利用 ActiveX 控件,如用图形框显示图片;另外一种是通过使用VB 语言本身的函数和方法,通过在屏幕上绘制点、线和图形来制作。

     

    1、Picture(图片)语法:
    本属性用来返回或设置控件中要显示的图片,可以通过属性窗口进行设置。如果要在程序运行过程中载入图片,常常使用 LoadPicture 函数,其语法规则为:
    对象.Picture= LoadPicture("图形文件的路径与名字")
    如:Picture1.Picture= Loadpicture("c:\1.jpg")

     

    AutoSize(自动显示)属性:
    本属性决定了图形框控件是否自动改变大小以显示图片的全部内容。当值为 True ,图象可以自动改变大小以显示全部内容;当值为 False ,则不具备图象的自我调节功能。如下图:

     

     

    二、图像框控件(Image)的主要属性:

    跟图形框一样,图像框控件也具有诸如 Name、Picture 等属性,以及Loadpicture 的方法,但在图像自适应问题上有所不同。
    PictureBox 用 AutoSize 属性控制图形的尺寸自动适应,而 Image 控件则用Stretch 属性对图片进行大小调整。如下图:

     

     

    图像框比图形框占用内存少,显示速度更快一些,因此,在图形框与图像框都能满足设计需要时,应该优先考虑使用图像框。

     

    具体请看视频教程:微博@郭盛华老师
    展开全文
  • VB工业控件

    2013-01-04 14:46:58
    漂亮的VB控件,让你的VB界面耳目一新,键盘控件,输入输出控件
  • VB控件,我在网上收集的,vb爱好者一起分享一下资源。,窗体控件,多媒体,控件控件,数据库控件,图形控件,文件控件
  • 有关VB的绘图控件很多,但是mathworks公司的这个控件,堪称经典,使用方便,应用广泛,简单易学,是学生和工程师的得力助手
  • 内容索引:VB源码,报表打印,TeeChart5.ocx,报表 TeeChart5.ocx 报表控件下载及诸多VB调用实例打包,TeeChart5.ocx是一款非常不错的实时图形绘制、显示控件,可用于各行业需要数据采集和监控的场合,随包下载的示例中...
  • vb.net控件

    2020-04-28 14:49:22
    vb.net 的 Label 控件 label(标签)控件用于显示文本,是设计应用程序界面时经常要用到的控件之一, 主要是用于显示其他控件名称,描述程序运行状态或标识程序运行的结果信息等 等,响应程序的事件或跟踪程序运行的...

    vb.net 的 Label 控件

    label(标签)控件用于显示文本,是设计应用程序界面时经常要用到的控件之一, 主要是用于显示其他控件名称,描述程序运行状态或标识程序运行的结果信息等 等,响应程序的事件或跟踪程序运行的结果。
    使用 Label 控件的情况很多,但用 Label 控件显示的信息一般都不是描述 Label 控件自身的特性,而是描述其他控件的属性或特征(如名称等)。例如,可用 Label 控件为文本框(TextBox)、列表框(ListBox)、组合框(ComboBox)等 控件添加描述性的信息。
    还可以编写代码改变 Label 控件显示的文本内容以响应程序运行时的事件或状 态信息。如果一个程序在运行的过程中,有些对象随着不同时间段,各种信息都 在变化,这时就可以用 Label 控件处理状况消息。
    注意:Label 控件不接受焦点
    1.设置标签的文本
    在 Label 控件中显示文本,使用“Text”属性。在开发应用程序时,首先选择 Label 控件,再选择“属性窗口”,再在“属性窗口”中设置该属性为某个字符 串量即可。
    “Text”属性的长度最长可设置为 1024 字节。
    2.设置标签中文本属性
    Label 控件中的文本默认时的排列方式为居左(从左侧起依次排列到右侧),通 过设置“TextAlign”属性可以改变排列方式,设置“TextAlign”为“Right”, 排列方式为居右,设置“TextAlign”为“center”,排列方式为居中。 3.标签的其他属性
    描述 Label 控件的边框的属性是 BorderStyle,如果将 BorderStyle 属性设成 FixedSingle(可以在设计时进行),那么 Label 控件就有了一个边框;如果将 BorderStyle 属性设成 Fixed3D,则 Label 控件就有了一个立体边框,看起来象 一个 TextBox(文本框)。还可以通过设置 Label 控件的 BackColor(背景颜色)、 ForeColor(字体颜色)和 Font(字体)等属性来改变 Label 控件的其他外观。 4.用标签创建访问键
    可以将 Text 属性中的字符定义成访问键,想要将 Label 控件的 Text 属性定义成 访问键,首先要将 UseMnemonic 属性设置为 True.定义了 Label 控件的访问键后, 用户按[Alt+指定的字符]组合键,就可将焦点按[Tab]键次序移动到下一个控件。 在作为访问键的字母之前添加一个连字符(&),就可为其他不具有标题的控件 (如 TextBox 控件)创建访问键。上面已经提到了标签不接受焦点,因此焦点会 按照[Tab]键次序自动移动到下一控件处。可用这种技术为文本框、图片框、组 合框、列表框、驱动器列表框、目录列表框、网络和图像等指定访问键。要将标 签指定为控件的访问键,请执行下述的步骤: (1)首先绘制标签,然后再绘制控件。或者以任意顺序绘制控件,并将标签的 TabIndex 属性设置为控件的 TabIndex 属性减 1。
    (2)在标签的 Text 属性中用连字符为标签指定访问键。
    注意:有时可能要在 label 控件中显示连字符而不是创建它们的访问键。如果在 一次记录集中,数据包含连字符,而且要将 Label 控件绑定到记录集的某个字段,

    就会出现所说情况。为在 Label TextBox 控件中显示连字符,应将 UseMnemonic 属性设置为 False.
    vb.net 的 Button 控件
    Button(按钮)控件一般接受鼠标单击事件被用来启动、中断或结束一个进程(相 当于 Visual Basic 以前版本的 CommandButton 控件)。单击 Button 控件时将调 用已写入 Click 事件过程中的过程。Button 控件在大多数 Visual Basic 应用程 序中都会用到,用户可以单击按钮执行操作。单击时,按钮不仅能执行相应的操 作,而且看起来与被按下和松开一样。
    1.向窗体添加按钮
    在应用程序中很可能要使用多个按钮。就象在其他容器控件上绘制按钮那样,从 工具箱里把 Button 控件直接拖到窗体上即可。可用鼠标调整按钮的大小,也可 通过设置 Location(坐标,用来确定控件相对窗体左上方顶点的位置)和 Size (大小,第一个参数代表宽度,第二个参数代表高度)属性进行调整。 2.设置按钮显示文本
    可用 Text 属性改变按钮上显示的文本。设计时,可在控件的“属性窗口”中设 置此属性。在设计时设置 Text 属性后将动态更新按钮文本。Text 属性最多包含 255 个字符。若标题超过了命令按钮的宽度,则会折到下一行。但是,如果控件 无法容纳其全部长度,则标题会被剪切。可以通过设置 Font 属性改变在命令按 钮上显示的字体。
    3.创建键盘快捷方式
    可通过 Text 属性创建按钮的访问键快捷方式。为此,只需在作为访问键的字母 前添加一个连字符(&)。例如,要为标题“Ok”创建访问键,应在字母“O”前 添中连字符,于是得到“&Ok”。运行时,字母“O”将带下划线,同时按 Alt+O 键就可执行单击按钮程序所执行的动作。 注意:如果不创建访问键,而又要使标题中包含连字符,应添加两个连字符(&&)。 这样,在标题中就只显示一个连字符。
    4.选定按钮
    运行时,可用鼠标或键盘通过下述方法选定按钮:
    (1)用鼠标单击按钮;
    (2)按 Tab 键,将焦点转移到按钮上,然后按 Enter 键选定按钮; (3)按按钮的访问键([Alt+带有下划线的字母])。
    5.Click 事件
    运行时单击按钮,将触发按钮的 Click 事件并执行写入 Click 事件过程中的代码, 同时,单击按钮的过程也将生成 MouseMove、MouseLeave、MouseDown 和 MouseUp 等事件。如果要在这些相关事件中附加事件过程,则应确保操作不发生冲突。对 控件的操作不同,这些事件过程发生的顺序也不同。Button 控件的单击事件发 生顺序为:
    MouseMove→MouseDown→Click→MouseUp→MouseLeave 注意:如果用户试图双击按钮控件,则其中每一次单击都将分别处理;也即按钮

    控件不支持双击事件。
    6.增强按钮的视觉效果
    按钮控件象复选框和选项按钮一样,可通过 Image 属性设置 Button 控件上的图 标以增强视觉效果,然后设置图标(图片)的属性:ImageAlign 显示图标(图 片)的位置。通过设置 ImageIndex(图片在图片框中的索引)以及 ImageList (图片框)则可实现如下的效果,比如要向按钮添加图标或位图,或者在单击、 禁止控件时显示不同的图象等等。
    vb.net 的 Textbox 控件
    TextBox(文本框)控件也是在应用程序中经常要用到的控件之一,主要用来在 程序运行时接受用户输入,也可以显示运行的结果,以完成用户与程序的交互。
    TextBox 控件在工具箱中的图标如图所示:
    TextBox 是一种通用控件,可以由用户输入文本或显示文本。除非把 TextBox 的 Locked 属性设为 true,否则不能用 TextBox 显示不希望用户更改的文本。TextBox 中显示的实际文本是受 Text 属性控制的。Text 属性可用三种方式设置:设计时 在“属性”窗口进行、运行时通过代码设置或在运行时由用户输入。 1.设置文本框的文本
    通过读 Text 属性能在运行时检索 TextBox 的当前内容。TextBox 在缺省情况下 只显示单行文本,且不显示 ScrollBar(滚动条).如果文本长度超过可用空间, 则只能显示部分文本。通过设置 MultiLine 和 ScrollBars 两种属性(只能在设 计程序时设置),可以改变 TextBox 的外观和行为。注意:不要把 ScrollBars 属性与 ScrollBar 控件混淆,ScrollBar 控件并不属于 TextBox,它具有自己的 属性集。把 MultiLine 属性设为 True,可以使 TextBox 在运行时接受或显示多 行文本。只要没有水平方向“ScrollBar”,多行 TextBox 中的文本会自动按字 换行。ScrollBars 属性的缺省值被设置为 0(None)。自动按字换行省去用户在 行尾插入换行符的麻烦。当一行文本已超过所能显示的长度时,TextBox 自动将 文本折回到下一行显示。在设计时,不能在“属性”窗口输入换行符。在过程中, 可以通过插入一个回车加上换行符(ANSI 字符 13 和 0)来产生一个行断点。 注意:如果将 MultiLine 属性设为 False,则文本框的宽度就无法改变了,这个 宽度由字体的大小决定。
    2.创建密码文本框
    密码框是一个文本框的特殊且常用的形式,它允许在用户输入密码的同时显示星 号之类的占位符。vb.net 2005 提供 PasswordChar 和 MaxLengh 这两个文本框属 性,大大简化了密码文本框的创建。PasswordChar 指定显示在文本框中的字符。 例如:若希望在密码框中显示星号,则可在“属性”窗口中将 PasswordChar 属 性指定为“*”。

    则在运行的时候,无论用户在文本框中输入什么字符,文本框中都显示星号。可 用 MaxLength 设定输入文本框的字符数。输入的字符数超过 MaxLength 后,系统 不接受多出的字符并发出嘟嘟声。
    3.创建只读文本框
    可用 Readonly 属性防止用户编辑文本框内容。将 Readonly 属性设置为 True 后, 用户就可以滚动文本框中的文本并将其突出显示,但不能作任何更改。将 Readonly 属性设置为后,运行时可以在文本框中使用“复制”命令,但不能使 用“剪切”和“粘帖”命令。Readonly 属性只影响运行时的用户交互。这时仍 可变更 Text 属性,从而在运行时通过程序改变文本框的内容。 4.显示字符串中的引号
    引号("")有时出现在文本的字符串中。
    例如:She said,“You deserve a treat!“因为赋予变量或属性的字符串都用引 号(””)括起来,所以对于字符串中要显示的一对引号,必须再插入一对附加的 引号。Visual Basic 将并列的两对引号解释为嵌入的引号。 例如,要显示上面的字符串就应使用以下代码:

    TextBox1.Text="She said,""You deserve a treat!"" "
    

    可用引号的 ASCII字符(34)达到相同的效果:

    TextBox1.Text="She said,"&Chr(34)+"You deserve a treat!"&Chr(34)
    

    vb.net 的 MainMenu 控件
    MainMenu(主菜单)控件是 vb.net 用来取代 Visual Basic 以前版本的“菜单编辑 器”。MainMenu 控件较“菜单编辑器”有很大优势,因为以控件的“身份”, 更有利于应用程序对整个菜单的操作,而且,可以实现不同窗体的多次利用,而 不必每个窗体都要重新设计菜单。MainMenu 控件在工具箱中的图标如图所示:
    1.在设计时添加 MainMenu 控件
    添加 MainMenu 控件与添加其他控件的方法一样(双击或拖动),但是 MainMenu 控件本身并不存在于窗体之上,而是在窗体下方的“组件栏”中。在这里的控件都不出现在窗体中,但它(们)的方法、过程、属性都影响着窗体 及其上的其他控件,类似的控件还有 Timer 控件、HelpProvide(帮助提供)控件 等。
    2.制作菜单
    单击“组件栏”中的 MainMenu 控件,则在窗体的左上方出现"Type Here"字样, 单击"Type Here",更改菜单的标题,如下图所示:
    右键单击任意一顶子菜单,在弹出的菜单中选择“Edit Names”(更改名称), 如下图所示:
    再次单击子菜单时,就可以更改菜单的名称了。第三次点击“Edit Names”则恢 复正常的菜单编辑状态。
    3.菜单的 Click 事件
    菜单最常用的事件就是 Click 事件,一般来说,菜单的 Click 事件总是和工具栏 中按钮的 Click 事件对应。
    vb.net 的 Checkbox 控件
    CheckBox(复选框)控件用来标识某个选项是否为选定的状态。因此通常用此控件 提供“Yes/No”或“True/False”选项。可用分组的 CheckBox 控件显示多组不 同类型的选项,用户可从中一个组选择一个或多个选项。CheckBox 控件在工具
    箱中的图标如图所示:

    CheckBox 控件与 RadioBox(单选框)控件都可以用来指示用户是否对某个选项作 出选择。不同之处在于,对于一个组内 RadioBox 控件,一次只能选择其中的一 个,而对于所有的 CheckBox 控件,则可选定任意数目的复选框。RadioBox 控件 将在后面进一步介绍。
    1.CheckState 属性
    CheckBox 控件的 CheckState 属性指示复选框处于选定、未选定或禁止状态(暗 淡的)中的哪一种。选定时,CheckState 设置值为 1。
    用户单击 CheckBox 控件指定选定或未选定状态,然后可检测控件状态并根据此 信息编写应用程序以执行某些操作。缺省时,CheckBox 控件设置为 CheckState.Unchecked。若要预先在一列复选框中选定若干复选框,则应在 New 或 InitializeComponent 过程中将 CheckState 属性设置为 CheckState.Checked 以选中复选框;可将 CheckState 属性设置为 CheckState.Indeterminate 以禁用 复选框。例如,有时可能希望满足某条件之前禁用复选框。
    2.Click 事件
    无论何时单击 CheckBox 控件都将触发 Click 事件,然后编写应用程序,根据复 选框的状态执行某些操作。在下例中,每次单击 CheckBox 控件时都将改变其 Text 属性以指示选定或未选定状态:

    Protected Sub CheckBox1_Click(ByVal sender As Object,ByVal As_ System.EventArgs)Handles CheckBox.Click
    If CheckBox1.CheckState=CheckState.Checked Then CheckBox1.Text="Checked"
    ElseIf CheckBox1.CheckState=CheckState.UnChecked Then CheckBox1.Text="UnChecked"
    End If
    

    注意:如果试图双击 CheckBox 控件,则将双击当作两次单击,而且分别处理两 次单击,即:CheckBox 控件不支持双击事件。
    3.响应鼠标和键盘
    在键盘上使用 Tab 键并按 SpaceBar 键,由此将焦点转移到 CheckBox 控件上,这 时也会触发 CheckBox 控件的 Click 事件。可以在 Text 属性的一个字母之前添加 连字符,创建一个键盘快捷方式来切换 CheckBox 控件的选择。
    4.增强 CheckBox 控件的视觉效果
    CheckBox 控件象 Button 和 RadioButton 控件一样,可通过更改 Style 属性的设 置值后使用 Image、ImageAlign、ImageIndex 和 ImageList 属性增强其视觉效果。

    例如:有时可能希望在复选框中添加图标或位图,或者在单击或禁止控件时显示 不同的图象等。
    vb.net 的 Radiobutton 控件
    RadioButton(选项按钮)控件和 CheckBox(复选框)一样,也是被用来标识某个选 项是否为选定的状态(相当于 Visual Basic 以前版本的 OptionButton 控件)。 通常以一组选项按钮的形式出现,但用户在一个组中只能选择一个选项。也就是 说,当用户选定一个选项按钮时,同组中的其他选项按钮会自动失效。
    RadioButton 控件在工具箱中的图标如图所示:
    1.创建一组选项按钮
    选项按钮一般是以组的形式存在的,一般来说,绘制在相同容器控件的同一类 RadioButton 就完成以组的形式存在了,象 GroupBox 控件、PictureBox 控件或 窗体都可以作为 RadioButton 组的容器。运行时,用户在每个选项组中只能选定 一个选项按钮。例如,如果把选项按钮分别添加到窗体和窗体上的一个 GroupBox 控件中,则相当于创建两组不同的选项按钮。所有直接添加到窗体的选项按钮成 为一组选项按钮。要添加附加按钮组,应把按钮放置在框架或图片框,然后在内 部绘制 RadioBox 控件。设计时,可选择 GroupBox 控件或 PictureBox 控件中的 选项按钮,并把它们作为一个单元来移动。要选定 GroupBox 控件、PictureBox 控件或窗体中所包含的多个控件时,可在按住 Ctrl 键的同时用鼠标在这些控件 周围绘制一个方框。
    2.运行时选择选项按钮
    在运行时有若干种选定选项按钮的方法:用鼠标单击某个选项按钮,使用 Tab 键将焦点转移到控件,使用 Tab 键将焦点转移到一组选项按钮后再用方向键从组 中选定一个按钮,在选项按钮的标题上创建快捷键,或者在代码中将选项按钮的 Checked 属性设置为 True.
    3.Click 事件
    选定选项按钮时将触发其 Click 事件。是否有必要响应此事件,这将取决于应用 程序的功能。例如,当希望通过更新 Label 控件的标题向用户提供有关选定项目 的信息时,对此事件作出响应是很有益的。
    4.Checked 属性
    选项按钮的 Checked 属性指出是否选定了此按钮。选定时,数值将变为 True。 可通过在代码中设置选项按钮的 Checked 属性来选定按钮。例如: RadioButton1.Checked=True,要在选项按钮组中设置缺省选项按钮,可在设计 时通过“属性”窗口设置 Checked 属性,也可在运行时在代码中用上述语句来设 置 Checked 属性。 在向用户显示包含选项按钮的对话框时将要求他们选择项目,确定应用程序下一 步做什么。
    可用每个 RadioButton 控件的 Checked 属性判断用户选定的选项并作出相应的响 应。
    5.禁止选项按钮

    要禁止选项按钮,应将其 Enabled 属性设置成 False。运行时将显示暗淡的选项 按钮,这意味着按钮无效。

    vb.net 的 GroupBox 控件
    GroupBox(控件组)控件一般是作为其他控件的组的容器的形式存在的,这样有利 于用户识别,使界面变得更加友好(GroupBox 控件相当于 Visual Basic 以前版 本的 Frame 控件)。使用控件组控件可以将一个窗体中的各种功能进一步进行分 类,例如,将各种选项按钮控件分隔开。在大多数情况下,对控件组控件没有实 际的操作。我们用它对控件进行分组,通常没有必要响应它的事件。不过,它的 Name、Text 和 Font 等属性可能会经常被修改,以适应应用程序在不同阶段的要
    求。GroupBox 控件在工具箱中的图标如图所示:
    1.在窗体中添加一个 GroupBox 控件
    在使用控件组控件给其他控件分组的时候,首先绘出控件组控件,然后再绘制它 内部的其他控件,其他的控件就以这个控件组控件为容器,这样在移动控件组的 时候,可以同时移动它包含的控件。
    2.在控件组内部控制控件 要将控件加入到控件组控件中,只需将它们绘制在控件组控件的内部即可。如果 将控件绘制在控件组控件之外,或者在向窗体添加控件的时候使用了双击方法, 再将它移动到控件组控件内部,那么控件也将从属于这个控件组控件。这也是 vb.net 中的 GroupBox 区别于以前版本的 Frame 的地方。 3.选择框加中的多个控件 要选择框架中的多个控件,在使用鼠标点击在控件组控件的时候需要按下 Ctrl 键,在释放鼠标的时候,位于框架之内的控件将被选定。

    vb.net 的 PictureBox 控件
    PictureBox(图片箱)控件被用来显示图形,可以作为其他控件的容器。 PictureBox 控件在工具箱中的图标如图所示:
    1.支持的图形格式
    PictureBox 控件可显示下述任何格式的图片文件:位图、图标、图元文件、增 强型图元文件、JPEG 或 GIF 文件。
    2.将图形加载到 Picture 控件中
    在设计时,从“属性”窗口中选定并设置 Image 属性就可将图片加载到 PictureBox 控件中,也可在运行时设置 PictureBox 控件的 Image 属性: PictureBox1.Image=Image.FromFile(“C:\Windows\Winlogo.cur”)
    或 PictureBox1.Image.FromFile(“C:\Windows\Winlogo.cur”)

    3.使用剪贴板
    设计时也可这样向 PictureBox 控件添加图形:从其他应用程序中复制图形后把 它粘贴到 PictureBox 控件中。例如,有时可能希望添加由 WindowsPaint 创建的 位图图象。直接把图象复制到剪贴板,选定 PictureBox 控件,然后使用键盘快 捷方式 Ctrl+V 或使用“编辑”菜单的“粘贴”命令。

    4.设置图片大小的属性
    图片大小用 SizeMode 属性来设置。缺省时这个属性值为 Normal,加载到图片框 中的图形保持其原始尺寸,这意味着如果图形比控件大,则超过的部分将被剪裁 掉,即 PictureBox 控件不提供滚动条。要使 PictureBox 控件自动调整大小以显 示完整图形,应将 SizeMode 属性设置为 AutoSize。这样控件将自动调整大小以 适应加载的图形;将 SizeMode 属性设置为 StretchImage 时,插入的图片将 PictureBox 的大小完整填充显示在其中;将 SizeMode 属性设置为 CenterImage 时,图片显示在 PictureBox 的中央。
    PictureBox 控件不能伸展图象以适应控件尺寸。

    5.用 PictureBox 控件作容器
    可用 PictureBox 控件作为其他控件的容器。例如,因为可将 PictureBox 控件放 置到 MDI 子窗体的内部区域,所以通常用它手工创建工具条或状态条。 6.PictureBox 控件的边框
    可以通过设置 PictureBox 的 BorderStyle 属性来改变控件的外观,BorderStyle 共有三个属性值:None、FixedSingle 及 Fixed3D。
    vb.net 的 ListBox 控件
    ListBox(列表框)控件可以显示一组项目的列表,用户可以根据需要从中选择一 个或多个选项。列表框可以为用户提供所有选项的列表。虽然也可设置列表框为 多列列表的形式,但在缺省时列表框单列垂直显示所有的选项,如果项目数目超 过了列表框可显示的数目,控件上将自动出现滚动条。这时用户可在列表中上、
    下、左、右滚动。
    1.click 和 Double-click 事件
    对于列表框的事件,特别是当列表框参与触发应用程序的某一部分功能时,可以 添加一个 Button 控件,并把该按钮同列表框并用。按钮的 Click 事件过程应该 使用列表框的选项执行适于应用程序的操作。 双击列表中的项目与选定项目然后单击按钮,这两者应该具有相同的效果。为此, 应在 ListBox 控件的 Double-Click 过程中调用按钮的 click 过程:

    Public Sub ListBox1_DoubleClick(ByVal sender As Object,_ ByVal e As System.EventArgs)Handles
    ListBox1.DoubleClick Button1_Click(sender,e)
    End Sub
    

    这将为使用鼠标的用户提供快捷方式,同时也没有妨碍使用键盘的用户执行同样 的操作。
    注意:没有与 DoubleClick 事件等价的键盘命令,因此无法通过快捷键的方式达 到 ListBox 控件的 DoubleClick 功能。
    2.向列表框中添加项目
    为了向列表框中添加项目,应使用 InsertItem 方法,其语法如下: ListboxName.InsertItem(index As integer,Item AS Object)

    ListboxName.Items.Insert(index As Integer,Item As Object)
    其中 ListboxName 列表框的名称“item”添加到列表中的字符串表达式。若 “item”是文字常数,则用括号将它括起来:“index”指定在列表中插入新项 目的位置。“index”为 0 表示第一个位置。如果在列表框的第一个位置添加项 目也可以用:
    ListboxName.Items.Add(Item As Object)
    通常在窗体设计时或 New 过程或 InitializeComponent(该过程存在于 Windows Form Designer generated code)中添加列表项目,但也可在任何时候使用 InsertItem 方法添加项目,于是可动态(响应用户的操作)添加项目。下列代 码将“Germany”、“India”、“France”和“USA”添加到名为 ListBox1 的列 表框中:

    Public Sub New() MyBase.New
    Form1=Me
    'This call is required by the Win Form Designer IntializeComponent
    ListBox1.InsertItem(0,"Germany")
    ListBox1.InsertItem(1,"India")
    ListBox1.InsertItem(2,"France")
    ListBox1.InsertItem(3,"USA")
    'TODO:Add any initialization after the InitializeComponent() call
    End Sub
    

    注意:“InitializeComponent”中的代码是在每次窗体设计后自动生成的,因 此尽量一次设计好窗体,因为如果重复设计窗体,以前所添加的代码将被覆盖掉, 所以可以把向 ListBox 中添加代码编成一个过程,"'AddItem() '过程",在 "New()"或"InitializeComponent()"调用这个过程,如下:

    Public Sub New() MyBase.New
    Form1=Me
    'This call is required by the Win Form Designer Intializecomponent
    Call AddItem(0
    'TODO:Add any initialization after the InitializeComponent() Call
    End Sub
    
    Private Sub AddItem() ListBox1.InsertItem(0,"Germany") ListBox1.InsertItem(1,"India") ListBox1.InsertItem(2,"France") ListBox1.InsertItem(3,"USA")
    End Sub
    

    3.设计时添加项目
    通过设置 ListBox 控件属性窗口的 Items 属性还可在设计时向列表添加项目,在 选定了 Items 属性选项并单击 时,弹出“字符串集合编辑器”可输入列表项目 并按 Enter 键换行。只能在列表末端添加项目。所以,如果要将列表按字母顺序 排序,则应将 Sorted 属性设置成 true.
    4.排序列表
    可以指定要按字母顺序添加到列表中的项目,为此将 Sorted 属性设置为 true 并省略索引。排序时不区分大小写;因此单词“japan”和“JAPAN”将被同等对 待。Sorted 属性设置为 true 后,InsertItem 方法可能会导致不可预料的非排序 结果。
    5.从列表中删除项目
    从列表中删除项目可用下面的语法:
    ListboxName.Items.Remove(Index As Integer) “Remove”有一参数“index”,它指定删除的项目;它有一个重载函数: ListboxName.Items.Remove(value As Object) 以适应不同参数输入的需要。要删除列表框中的所有项目,应使用 Clear 方法: Listbox1.Items.Clear()。
    6.通过 Text 属性获取列表内容
    通常,获取当前选定项目值的最简单方法是使用 Text 属性。Text 属性总是对应 用户在运行时选定的列表项目。例如,下列代码在用户从列表框中选定 Canada 时显示有关加拿大人口的信息:

    Public Sub Listbox1_DoubleClick(ByVal sender As object,Byval e As System.EventArgs)
    If Listbox1.Text="Canada" Then Textbox1.Text="Canada has 24 million people."
    End If End Sub
    

    Text 属性包含当前在 Listbox1 列表框中选定的项目。代码检查是否选定了 “Canada”,若已选定,则在 Text 框中显示信息。
    7.用 Items 属性访问列表项目
    可用 Items 属性访问列表的全部项目。此属性包含一个数组,列表的每个项目都 是数组的元素。每个项目以字符串形式表示。引用列表的项目时应使用如下语法: ListboxName.Items(index) “ListboxName"参数是列表框的名称,“index”是项目的位置。顶端项目的索引为 0,接下来的项目索引为 1,依次类推。例如,下列语句在一个文本框中显示 列表的第三个项目(index=2):
    Textbox1.Text=Ctr(Listbox1.Items(2))。
    8.用 SelectedIndex 属性判断位置
    如果要了解列表中已选定项目的位置,则用 SelectedIndex 属性。此属性只在运 行时可用,它设置或返回控件中当前选定项目的索引。设置列表框的 SelectedIndex 属性也将触发控件的 click 事件。 如果选定第一个(项端)项目,则属性的值为 0,如果选定下一个项目,则属性 的值为 1,依此类推。若未选定项目,则 SelectedIndex 值为-1。
    9.使用 Count 属性返回项目数
    为了返回列表框中的项目的数目,应使用 Count 属性。例如,下列语句用 Count 属性判断列表框中的项目数:
    Textbox1.Text=“You have”&Listbox1.Items.Count&”_entries listed"
    vb.net 的 CheckedListBox 控件
    CheckedListBox(复选列表框)控件可以说是 ListBox 控件的派生控件,因此继承 了 ListBox 控件的很多方法和属性,CheckedListBox 控件在工具箱中的图标如
    图所示:
    1.CheckedListBox 的 Double_Click 事件
    与列表框相似,复选列表框作为对话框的一部分出现时,建议添加一个按钮,并 把该按钮同列表框并用。按钮的 Click 事件过程应该使用列表框的选项执行适于 应用程序的操作。 双击列表中的项目与先选定项目然后单击按钮,这两者具有相同的效果。为此, 应在 ListBox 控件的 DoubleClick 过程中调用按钮的 Click 过程:

    Public Sub ListBox1_DoubleClick(ByVal sender As Object,_ ByVal e As System.EventArgs)Handles
    ListBox1.DoubleClick Button1_Click(sender,e)
    End Sub
    

    改为:

    Public Sub CheckedListBox1_DoubleClick(ByVal sender As Object,_
    ByVal e As System.EventArgs)Handles ListBox1.DoubleClick
    Button1_Click(sender,e) End Sub
    

    2.设计时添加项目
    通过设置 CheckedListBox 控件属性窗口的 Items 属性还可在设计时向列表添加 项目。在选定了 Items 属性选项并单击 时,弹出“字符串集合编辑器”,可输

    入列表项目并按 Enter 换行。只能在列表末端添加项目。所以,如果要将列表按 字母顺序排序,则应将 Sorted 属性设置成 true。
    3.运行时对项目的操作
    有两种方法向复选列表框中添加项目
    ●CheckedListBoxName.Items.Add(item as Object,IsChecked as Boolean) ●CheckedListBoxName.InsertItem(index as integer,item as Object) 第一种方法可以向复选列表框添加一个标识选定与否的项目,第二种方法可以在 指定的位置添加项目。例如向复选列表框中添加如下两个项目: CheckedListBox1.Items.Add(“dd”,True) CheckedListBox1.InsertItem(2,“kk”)
    设置项目的 Checked 属性可以用以下语句: CheckedListBox.SetItemChecked(index as integer,value as Boolean) 可将"kk"项目的 Checked 属性设置为 True: CheckedListBox1.SetItemChecked(2,True) '假定"kk"项目的 index 属性为 2
    vb.net 的 Combobox 控件
    Combobox(组合框)控件相当于将文本框和列表框的功能结合在一起。这个控件可 以实现输入文本来选定项目,也可以实现从列表中选定项目这两种选择项目的方 法。如果项目数超过了组合框能够显示的项目数,控件上将自动出现滚动条。用 户可以上下或左右滚动列表。
    1.使用组合框和列表框
    通常,组合框适用于建议性的选项列表,而当希望将输入限制在列表之内时,应 使用列表框。组合框包含编辑区域,因此可将不在列表中的选项输入列区域中。 此外,组合框节省了窗体的空间。只有单击组合框的向下箭头时(Style 属性值 为 1 的组合框除外,它总是处于下拉状态)才显示全部列表,所以无法容纳列表 框的地方可以很容易地容纳组合框。
    2.组合框的样式
    此处有三种组合框样式。每种样式都可在设计时或运行时来设置,而且每种样式 都使用数值或相应的 Visual Basic 常数来设置组合框的样式。 样式值常数:下拉式组合框值为 0,Vb.net 中的常数值为 DropDown;简单组合框 值为 1,Vb.net 中的常数值为 Simple;下拉式列表框值为 2,vb.net 中的常数 值为 DropDownList。
    3.下拉式组合框
    在缺省设置(Style=0)下,组合框为下拉式。用户可象在文本框中一样直接输 入文本,也可单击组合框右侧的附带箭头打开选项列表。选定某个选项后,将此 选项插入到组合框顶端的文本部分中。当控件获得焦点时,也可按 Alt+↓键打 开列表
    4.简单组合框
    将组合框的 Style 属性设置为 1,将指定一个简单的组合框,任何时候都在其内 显示列表。为显示列表中所有项,必须将列表框绘制得足够大。当选项数超过可

    显示的限度时将自动插入一个垂直滚动条。用户可直接输入文本,也可从列表中 选择。象下拉式组合框一样,简单组合框也允许用户输入那些不在列表中的选项。 5.下拉式组合框 下拉式组合框(Style=2)与正规列表框相似–它显示项目的列表,用户必须从 中选择,但下拉式列表框与列表框不同之处在于,除非单击框右侧的箭头,否则 不显示列表。 这种列表框与下拉式组合框的主要差别在于,用户不能在列表框中输入选项,而 只能在列表中选择。当窗体上的空间较少时,可使用这种类型的列表框。 6.添加项目
    为在组合框中添加项目,应使用 Insert 方法,其语法如下: ComboboxName.Items.Insert(index As Integer,item As Object) "comboboxName"为列表框或组合框名称,item 为在列表中添加的字符串表达式, 用引号括起来。Index 用来指定新项目在列表中的插入位置。Index 为 0 表示第 一个位置。当在第一个位置时,也可以用语法:
    combobox.Items.Add(item As Object)
    通常在设计时或在 New 过程中添加列表项目,但也可在任何时候使用 Insert 方 法。这样就能动态在列表中添加项目。以下代码将“Chardonnay”,“Fum Blanc”,“Gewztraminer”和“Zinfandel”放置到名为 combobox1,Style 属性 为 0(DropDown)的组合框中:

    Public Sub New() ...
    ...
    Combobox1.Items.Insert "Chardonnay" Combobox1.Items.Insert "Fum Blanc" Combobox1.Items.Insert "Gewztraminer" Combobox1.Items.Insert "Zinfandel"
    End Sub
    

    7.设计时添加项目
    在设计时,也可设置组合框控件“属性”窗口的 Items 属性,从而在列表中添加 项目。选定 Items 属性并单击 按钮后就可以输入列表项目,然后按回车键换到 新的一行。 只能将项目添加到列表的末尾。所以,如果要将列表按字母顺序排序,则应将 Sorted 属性设置为 True.
    8.指定位置添加项目
    为了在列表指定位置添加项目,应在新项目后指定索引值。例如,下行代码将 "Piont Noir"插入到第一个位置并把其他项目的位置向下调整: Combobox1.Items.Insert(0,“Pinot Noir”) 注意:指定列表中的第一个位置的是 0 而不是 1
    9.排序列表
    将 Sorted 属性设置为 True 并省略索引,则可在列表中指定按字母顺序添加的项 目。排序时不区分大小写。将 sorted 属性设置为 true 后,Items.Insert 方法 将导致不可预料的非排序结果。

    10.删除项目
    可在组合框中用 Items.Remove 方法来删除项目。Items.Remove 有一个参数 index, 它指定要删除的项目:combobox1.Items.Remove(index)及 index 参数和 Items.Insert 中的参数相同。例如,为了删除列表中的第一个项目,应添加下 面一行代码:
    combobox1.Items.Remove(0)
    若要删除所有列表项目,就使用 Clear 方法:
    combobox1.Clear
    11.用 Text 属性获取列表内容
    获取当前选项目值的最简单的常用方法就是使用 Text 属性。在运行时无论向控 件的文本框部分输入了什么文本,Text 属性都与这个文本相对应。它可以是选 定的列表选项,或者是用户在文本框中输入的字符串。例如,如果用户选定列表 框中的“chardonnay”,则通过下列代码显示有关“chardonnay”的信息:

    Private Sub Combobox1_click(Byval sender As Object,Byval e As System.EventArgs)
    If Combobox1.Text="Chardonnay" Then Textbox1.Text="Chardonnay is a midium-bodied white wine."
    End If End Sub
    

    其中 Text 属性包含 Combobox1 列表框中当前选定的项目。代码查看是否选择了 “Chardonnay”,若是如此,则在文本框中显示信息。
    12.用 Items 属性访问列表选项
    有了 Items 属性就可访问列表中所有项目,该属性包含一个数组,而且列表中的 每个项目都是数组的元素。每一项都表示为字符串的形式。为了引用列表中的项 目,应使用如下语法:
    ComboboxName.Items(index)
    ComboboxName 为组合框名称,而 index 是项目的位置。顶端项目的索引为 0,下 一个项目的索引为 1,依次类推。例如,在文本框中,以下语句显示列表中的第 三个项目(index=2):
    Text1.Text=CStr(Combobox1.Items(2))
    13.用 SelectIndex 属性判断位置
    想要知道组合框列表中选定项目位置,可以由 SelectIndex 属性得到。该属性设 置或返回控件中当前选定项目的索引值,而且只在运行时有效。对组合框的 SelectIndex 属性进行设置时也会触发控件的 Click 事件。若选定第一个(项端) 项目,则属性值为 0;选定的下一个项目属性值为 1,依次类推。如果未选定项 目,或者用户在组合框中输入选项(样式 0 或 1)而不在列表中选择现有的项目, 则 SelectIndex 为-1。
    14.Items.Count 属性返回项目数
    为了返回组合框中的项目数,应使用 Items.Count 属性。例如,下列语句用 Items.Count 属性判断组合框中的项目数:
    TextBox1.Text=“You have”&Combobox1.“Items.Count”&"_entries listed"

    vb.net 的 ListView 控件
    ListView(列表查看)控件用来以图形的形式显示项目,可以用 4 种不同视图。通 过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 ListView 控件在工具箱中的图标如图所示:
    可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列 4 种不同的视 图之一:大(标准)图标、小图标、列表、报表。
    1.用 View 属性改变视图
    要改变视图,可以使用 View 属性。下面的代码将 View 属性设置为报表视图,代 码中使用了内部常数 View.LargeIcon,该控件的名称为“ListView1”。 ListView1.View=View.LargeIcon
    用 View 属性,可使最终用户动态地改变视图
    2.InsertItem 方法
    添加 ListItem 对象到 ListView 控件的 ListItems 集合中并返回新创建对象的引 用。应用于 ListItem 对象,ListItem 集合,语法为: ListViewName.InsertItem(index as integer,text as String,imageIndex as Integer,subItems() as String)
    InsertItem 方法的语法包括以下部分: (1)ListViewName:必需的。对象表达式,其值是 ListItems 集合; (2)Index:必需的。指定在何处插入 ListItem 的整数。若未指定索引,则将 ListItem 添加到 ListItems 集合的末尾;
    (3)Text:必需的。指定加入 ListItem 的标题;
    (4)imageIndex:可选的。当 ListView 控件设为图标视图时,此整数设置从 ImageList 控件中选定欲显示的图标;
    (5)SubItems():可选的。当 ListView 控件为报表视图时,用来设置列标题的数 组。
    注意:设置 imageIndex 属性之前必须先初始化。有两种初始化方法:在设计时, 使用 ListView 控件属性页初始化,或在运行时,使用下列代码初始化: ListView1.LargeImageList=ImageList1 '假设 ImageList 为 ImageList1 ListView1.SmallImageList=ImageList2
    如果列表尚未排序,则可使用 index 参数将 ListItem 对象插入到任意位置。如 果列表已排序,则将忽略 index 参数并根据排序顺序把 ListItem 对象插入到适 当的位置。
    若未提供 index,则 ListItem 对象将被添加一个索引,此索引等于集合中 ListItem 对象的数目加 1。
    vb.net 的 TreeView 控件
    一个 TreeView(树型结构)控件是显示结点(Node)对象的等级体系结构,每个 Node 对象包含了一个标签和可选的点位图。TreeView 控件通常用于显示文档头、 索引中的条目、磁盘上的文件和目录或者可以显示为等级结构的各种其他信息。

    Windows 资源管理器左侧部分就是一个典型的树结构。TreeView 控件在工具箱中 的图标如图所示:
    1.TreeView 在设计时设计好结点的组织结构
    要建立如下图所示的树形结构可按以下步骤进行:
    (1)向窗体添加一个 TreeView 控件,名为 TreeView1 以及一个 ImageList 控件, 名为 ImageList1;
    (2)在 ImageList 控件中添加位图文件,具体方法见后面的 ImageList 控件章节。 (3)将 TreeView 属性页中的“ImageList”选项设置为“ImageList1”; (4)点击 TreeView 属性页中的“Nodes”选项,则会弹出树结点编辑对话框 (5)在树结点编辑框中编辑结点的层次关系
    2.在树结点编辑器中编辑结点
    (1)点击“Add Root(添加根结点)”按钮,则在结点编辑框中出现了一个结点 (默认名为 NodeN),可根据树型的需要,将其他结点添加到这棵树上。 (2)选择需要添加子结点的结点,单击“Add Child(添加子结点)”按钮,则在 当前选中的结点中的结点上添加了一个子结点。 (3)选择需要添加位图的结点,然后在“Image”(图标)、“Selected Image“(选 择图标)中,在 ImageList1 中选择需要的位图即可。 (4)点击“OK(确定)”按钮,在 TreeView1 中就会显示编辑的树了。 3.运行时给树添加结点
    给 TreeView 添加结点用到的是“Nodes.Add”方法,首先选定要添加子结点的结 点才能应用这个方法,TreeView 中的结点的组织关系是父结点管理子结点的关 系,也就是说,子结点组成的集合就是父结点的“Nodes”属性,子结点的 “Index”属性,是根据其在子结点集合中的位置而决定的,而不是整棵树中结 点的位置。根据这个特点,若想找到指定结点须按以下的语法: TreeViewName.Nodes.Item(Index1).Nodes.Item(Index2)… 而添加结点的方法为: TreeViewName.Nodes.Item(Index1).Nodes.Item(Index2)…Add(“NodeText”) 或 TreeViewName.Nodes.Item(Index1).Nodes.Item(Index2)…Add(“objNode”) 例如在上面 TreeView1 的 node2 结点中添加子结点“node2child1”,再给结点 node2child1 添加子结点“node2child1child1”,可以写成如下代码:

    Protected Sub Button1_Click(Byval sender As Object,ByVal e As system.Eventargs)
         Dim nodx As New TreeNode()
      
    nodx.Text="node2child1" nodx.ImageIndex=2 TreeView1.Nodes.Item(2).Nodes.Add(nodx)
    TreeView1.Nodes.Item(2).Nodes.Item(0).Nodes.Add("node2child1child1") End Sub
    vb.net 的 ImageList 控件
    

    ImageList(图片列表)控件,主要就是为了给其他控件提供位图的支持,它仅仅 是个图标的承载工具,本身并不参与界面的设计,ImageList 控件在工具箱中的 图标如图所示:
    向 ImageList 中添加位图文件:
    点击 ImageList 属性页中的“Images”选项右侧的 ,则会弹出如下图所示的 图片编辑对话框,添加图片即可。
    vb.net 的 Timer 控件
    Timer(定时器)控件是用来产生一定的时间间隔。在每个时间间隔中都可根据应 用程序的要求有相同或不同的事件或过程发生,Timer 控件在工具箱中的图标如
    图所示:
    1.设置 Interval、Enabled 属性
    Interval 属性是 Timer 控件最重要的属性之一,它决定着事件或过程发生的时 间间隔,Interval 属性以千分之一秒为基本单位,就是事件发生的最短间隔是 一毫秒,但是这样的时间间隔对系统的要求很高,因此按时间精度的要求适当设 置这个属性也是工程运行速度和可靠性的一种保证。
    Enabled 属性可以设置 timer 控件是否为激活状态,一旦这个属性为 False,那 么 timer 控件将失去作用。反之,如果在某个条件下将这个属性设置为 true, timer 控件将会被激活,事件和过程将间隔发生。

    2.timer 的 Tick 事件
    使用 Tick 事件时,可用此事件在每次 timer 控件时间间隔过去之后通知 Visual Basic 应该做什么:Interval 属性指定 Tick 事件之间的间隔。无论何时,只要 timer 控件的 Enabled 属性被设置为 true,而且 Interval 属性大于 0,则 Tick 事件以 Interval 属性指定的时间间隔发生。如下例将实现标题栏滚动的效果。 其中 Button1、Button2 为按钮,它们的 Text 属性分别为“Go Now”和“Stop Here”;Label1 为一个标签,Text 属性为“Welcome to Vb.net”;Timer1 为 一个定时器控件,如下图所示:
    添加如下代码:

    Protected Sub Timer1_Tick(ByVal sender As Object,ByVal e As System.EventArgs)
    Label1.Left+=40
    Label1.Left=Label1.Left MOd Me.Width End Sub
    Protected Sub Button2_Click(Byval sender As Object,Byval As System.EventArgs)
    timer1.Enabled=False End Sub
    Protected Sub Button1_Click(Byval sender As Object,Byval e As System.EventArgs)
    timer1.Interval=100
    timer1.Enabled=True 
    End Sub
    

    添加代码后,运行该工程,点击“Go Now”按钮,即可看到标题栏在滚动,点击 “Stop Here”按钮,则标题栏停止滚动。
    vb.net 的 HScrollBar 和 VScrollBar 控件

    有了 HScrollBar(水平滚动条,如图 )和 VScrollBar(垂直滚动条,
    如图 ),就可在应用程序的窗体或控件容器中水平或垂直滚动,相当 方便地巡视一长列项目或大量信息。
    水平、垂直滚动条控件不同于 Windows 中内部的滚动条或 Visual Basic 中那些 附加在文本框、列表框、组合框或 MDI 窗体上的滚动条。无论何时,只要应用程 序或控件所包含的信息超过当前窗口(或者设置了 ScrollBars 属性的 TrueBox 控件)所能显示的信息,那些滚动条就会自动出现。在较早的 Visual Basic 版 本中,通常把滚动条作为输入设备。但目前的 Windows 界面指南则建议用滑块取 代滚动条作为输入设备。滚动条在 Visual Basic 中仍然不价值,因为它为那些 不能支持自动支持滚动的应用程序和控件提供了滚动的功能。
    1.ScrollBar 控件如何工作
    滚动条控件用“Scroll”和“ValueChanged”事件监视滚动框沿滚动条的滚动。 “ValueChanged”在滚动框移动之后发生;“Scroll”在 ValueChange 发生后释 放鼠标时发生。在单击滚动箭头或滚动条时,也是先发生 ValueChange 事件,再 发生 Scroll 事件。下面的代码中,Scroll 事件将当前窗体的标题设置为 Value 值,ValueChange 事件将当前窗体的标题设置为两倍的 Value 值:

    Public Sub HScrollBar1_Scroll(Byval sender As Object,_
    Byval As System.WinForms.ScrollEventArgs)Handles HScrollBar1.Scroll
    Me.Text=CStr(hscrollbar1.Value) End Sub
    Public Sub HScrollBar1_ValueChanged(Byval sender As Object,_
    Byval As System.EventArgs)Handles HScrollBar1.ValueChanged
    Me.Text=CStr(hscrollbar1.Value*2) 
    End Sub
    

    2.Value 属性
    Value 属性(缺省值为 0)是一个整数,它对应于滚动框在滚动条中的位置。当 滚动框位置在最小值时,它将移动到滚动条的最左端位置(水平滚动条)或顶端 位置(垂直滚动条)。当滚动框在最大值时,它将移动到滚动条的最右端或底端 位置。同样,滚动框取中间数值时将位于滚动条的中间位置。除了可用鼠标单击 改变滚动条数值外,也可将滚动框沿滚动条拖动到任意位置。结果取决于滚动框 的位置,但总是在用户所设置的“Minimum”和“Maximum”之间。 3.LargeChange 和 SmallChange 属性 为了指定滚动条中的移动量,对于单击滚动条的情况可用 LargeChange 属性,对 于单击滚动条两端箭头的情况可用 SmallChange 属性。滚动条的 Value 属性增加 或减少的长度是由 LargeChange 和 SmallChange 属性设置的数值。要设置滚动框 在运行时的位置,可将 Value 属性设为 Minimum 到 Maximum 中的某个数值。
    progressbar控件
    ProgressBar(进度条)控件,是个水平放置的指示器,直观地显示某个操作正进 行了多少时间。进度条并不显示计算机执行某项特定任务要花多少分钟或秒钟, 它提供的是直观的视觉反馈,使用户确信没有理由中止操作或关掉计算机。进度 条能减轻与等待复杂的运算结果有关的紧张和不安,提供了测量某项计算任务进 度的切实措施。
    1.Value、Maximum 和 Minimum 属性
    Value 属性决定该控件被填充多少,其 Maximum 和 Minimum 属性设置该控件的界 限。要进行需要几秒钟的时间才能完成的操作时,就要使用 ProgressBar 控件。 同时还必须知道该过程到达已知端点需要持续多长时间,并将其作为该控件的 Maximum 属性来设置。
    要显示某个操作的进展情况,Value 属性将持续增长,直到达到了由 Maximum 属 性定义的最大值。这样该控件显示的填充块的数目总是 Value 属性与 Maximum 和 Minimum 属性之间的比值。
    例如,如果 Mimimum 属性被设置为 1,Maximum 属性被设置为 100,Value 属性为 50,那么该控件将显示百分之五十的填充块。
    2.将 Maximum 属性设置为已知的界限
    要对 ProgressBar 进行编程,则必须首先确定 Value 属性攀升的界限。例如,如 果正在下载文件,并且应用程序能够确定该文件有多少字节,那么可将 Maximum 属性设置为这个数。在该文件下载过程中,应用程序还必须能够确定该文件已经 下载了多少字节,并将 Value 属性设置为这个数。
    vb.net 的 ToolBar 控件
    ToolBar(工具栏)控件包含用来创建工具栏的 ToolBarButton 对象的集合。工具 栏可与应用程序相关联。ToolBar 在工具箱中的图标如图所示:
    一般情况下,工具栏中的按钮与应用程序菜单中的菜单项相对应,可以用它们来 访问应用程序最常用的功能和命令。要创建工具栏,必须先将 Button 对象加入 Buttons 集合,每个 Button 对象可以拥有可选的文本,或者(并且)拥有相关 联的 ImageList 控件提供的图象。可以用 Text 属性为每个 Button 对象设置文本, 用 ImageIndex 属性设置图象。在设计时,可通过 ToolBar 的 Buttons 对话框加 入 Button。
    在运行时,可以用 Add 和 Remove 方法将按钮加入 Buttons 集合或从中删除。要 在设计时添加其他控件,只需在工具栏上将所需要的控件拖入工具栏即可。 1.Buttons 集合
    ToolBar 控件由 Buttons 集合中的一个或多个 ToolBarButton 对象构成。在设计 时和运行时均可创建 Button 对象。每个按钮可有图象、标题、工具提示,并且 可以同时具有上述三种特性,下图为一个工具栏的实例:
    每个按钮对象还有 Style 属性,该属性决定了按钮的行为。 2.在运行时创建按钮
    在运行时创建 ToolBarButton 对象的集合按以下的步骤:
    (1)声明 ToolBarButton 类型的对象变量。在添加 ToolBarButton 对象时,该变 量用来包含对新产生对象的引用。该引用可以用来设置新 ToolBarButton 对象的 各种属性。
    (2)用带 Add 方法的 Set 语句,将对象变量赋值为新 ToolBarButton 对象。 (3)用该对象变量设置新 ToolBarButton 对象的属性
    下面的代码在 Button 对象的 Click 事件中创建一个 ToolBarButton 对象,然后 设置新的 ToolBarButton 对象的 ImageIndex,Text,ToolTipText 和 Style 属性。

    Protected Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs)
    Dim MyButton As New ToolBarButton() ToolBar1.Buttons.Add(MyButton) MyButton.ImageIndex=1
    MyButton.Text="left" MyButton.ToolTipText="left1" MyButton.Style=ToolBarButtonStyle.PushButton
    End Sub
    

    vb.net 的 StatusBar 控件
    要点
    StatusStrip 和 ToolStripStatusLabel 控件可替换 StatusBar 和 StatusBarPanel 控件并新增了功能;但仍保留了 StatusBar 和 StatusBarPanel 控件以满足向后兼容和将来使用(如果您愿意的话)。
    Windows 窗体 StatusBar 控件(Windows 窗体)是作为一个区域用在窗体上的, 通常显示在窗口的底部,应用程序可以在那里显示各种状态信息。StatusBar 控 件可以有状态栏面板,面板上显示指示状态的文本或图标,或者显示指示一个进 程正在工作的一系列动画图标;例如,Microsoft Word 指示正在保存文档。
    使用 StatusBar 控件
    在鼠标滚动到超链接时,Internet Explorer 使用状态栏指示某个页面的 URL; Microsoft Word 为您提供有关页位置、节位置和编辑模式(如改写和修订跟踪) 的信息;Visual Studio 使用状态栏提供区分上下文的信息,如告诉您如何操纵 可停靠的窗口,使其停靠或浮动。
    通过将 ShowPanels 属性设置为 false(默认值)并将状态栏的 Text 属性设置为 希望出现在状态栏中的文本,可在状态栏中显示一条消息。您可以将状态栏分成 多个面板来显示多种类型的信息,方法是将 ShowPanels 属性设置为 true 并使用 StatusBarPanelCollection 的 Add 方法。
    ToolStrip 控件
    ToolStrip 控件概述(Windows 窗体)
    使用 ToolStrip 及其关联的类,可以创建具有 Microsoft Windows XP、 Microsoft Office、Microsoft Internet Explorer 或自定义的外观和行为的工 具栏及其他用户界面元素。这些元素支持溢出及运行时项重新排序。ToolStrip 控件提供丰富的设计时体验,包括就地激活和编辑、自定义布局、漂浮(即工具 栏共享水平或垂直空间的能力)。
    尽管 ToolStrip 替换了早期版本的控件并添加了功能,但是仍可以在需要时选 择保留 ToolBar 以备向后兼容和将来使用。
    ToolStrip 控件的功能
    使用 ToolStrip 控件可以:
     创建易于自定义的常用工具栏,让这些工具栏支持高级用户界面和布局功 能,如停靠、漂浮、带文本和图像的按钮、下拉按钮和控件、“溢出”按 钮和 ToolStrip 项的运行时重新排序。
     支持操作系统的典型外观和行为。
     对所有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事
    件相同。
     将项从一个 ToolStrip 拖到另一个 ToolStrip 内。
     使用 ToolStripDropDown 中的高级布局创建下拉控件及用户界面类型编
    辑器。
    通过使用 ToolStripControlHost 类来使用 ToolStrip 中的其他控件,并为它 们获取 ToolStrip 功能。
    通过使用 ToolStripRenderer、ToolStripProfessionalRenderer 和 ToolStripManager 以及 ToolStripRenderMode 枚举和 ToolStripManagerRenderMode 枚举,可以扩展此功能并修改外观和行为。
    ToolStrip 控件为高度可配置的、可扩展的控件,它提供了许多属性、方法和事 件,可用来自定义外观和行为。以下为一些值得注意的成员:
    Dock:AllowItemReorder
    LayoutStyle:Overflow
    IsDropDown:OverflowButton
    Renderer:RenderMode
    Renderer:Changed
    说明
    获取或设置 ToolStrip 停靠在父容器的哪一边缘。
    获取或设置一个值,让该值指示拖放和项重新排序是否专门 由 ToolStrip 类进行处理。
    获取或设置一个值,让该值指示 ToolStrip 如何对其项进 行布局。
    获取或设置是将 ToolStripItem 附加到 ToolStrip,附加 到 ToolStripOverflowButton,还是让它在这两者之间浮 动。
    获取一个值,该值指示单击 ToolStripItem 时, ToolStripItem 是否显示下拉列表中的其他项。
    获取 ToolStripItem,它是启用了溢出的 ToolStrip 的 “溢出”按钮。
    获取或设置一个 ToolStripRenderer,用于自定义 ToolStrip 的外观和行为(外观)。
    获取或设置要应用于 ToolStrip 的绘制样式。 当 Renderer 属性更改时引发。
    通过使用多个伴随类可以实现 ToolStrip 控件的灵活性。以下为一些最值得注 意的伴随类:
    MenuStrip:StatusStrip
    ContextMenuStrip:ToolStripItem
    ToolStripContainer:ToolStripRenderer
    ToolStripProfessionalRenderer:ToolStripManager
    ToolStripManagerRenderMode:ToolStripRenderMode
    ToolStripControlHost:ToolStripItemPlacement
    说明
    替换 MainMenu 类并添加功能。 替换 StatusBar 类并添加功能。 替换 ContextMenu 类并添加功能。
    抽象基类,它管理 ToolStrip、 ToolStripControlHost 或 ToolStripDropDown 可以包含的所有元素的 事件和布局。
    提供一个容器,在该容器中窗体的每一侧均 带有一个面板,面板中的控件可以按多种方 式排列。
    处理 ToolStrip 对象的绘制功能。
    提供 Microsoft Office 样式的外观。
    控制 ToolStrip 呈现和漂浮,并控制 MenuStrip 对象、ToolStripDropDownMenu 对象和 ToolStripMenuItem 对象的合并。
    指定应用于窗体中的多个 ToolStrip 对象 的绘制样式(自定义、Windows XP 或 Microsoft Office Professional)。
    指定应用于窗体中的一个 ToolStrip 对象 的绘制样式(自定义、Windows XP 或 Microsoft Office Professional)。
    承载不是明确的 ToolStrip 控件、但您需要 为其提供 ToolStrip 功能的其他控件。
    指定是在主 ToolStrip 中对 ToolStripItem 进行布局,是在溢出 ToolStrip 中对它进行布局,还是都不进行 布局。
    有关更多信息,请参见 ToolStrip 技术摘要和 ToolStrip 控件结构。 原文地址:msdn2.microsoft.com/zh-cn/library/e58c44b8(VS.80).aspx

    Vs 2005 的 StatusStrip 控件
    微软 msdn 微软 msdn
    .NET Framework 类库 StatusStrip 类 注意:此类在 .NET Framework 2.0 版 中是新增的。
    表示 Windows 状态栏控件。
    命名空间:System.Windows.Forms
    程序集:System.Windows.Forms(在 system.windows.forms.dll 中)
    语法
    Visual Basic(声明) <ComVisibleAttribute(True)> _ <ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _ Public Class StatusStrip
    Inherits ToolStrip
    Visual Basic(用法) Dim instance As StatusStrip
    备注 虽然 StatusStrip 对以前版本的 StatusBar 控件进行替换和扩展,但是 考虑到向后兼容性和将来的使用(如果您选择),仍然保留了 StatusBar。
    Vs 2005 的 MenuStrip 控件
    MenuStrip 控件概述(Windows 窗体) 菜单通过存放按照一般主题分组的命令将功能公开给用户。
    MenuStrip 控件是此版本的 Visual Studio 和 .NET Framework 中的新功能。 使用该控件,可以轻松创建 Microsoft Office 中那样的菜单。
    MenuStrip 控件支持多文档界面 (MDI) 和菜单合并、工具提示和溢出。您可以 通过添加访问键、快捷键、选中标记、图像和分隔条,来增强菜单的可用性和可 读性。
    MenuStrip 控件取代了 MainMenu 控件并向其中添加了功能;但是也可选择保留 MainMenu 控件以备向后兼容和将来使用。
    MenuStrip 控件的使用方式 使用 MenuStrip 控件可以:
     创建支持高级用户界面和布局功能的易自定义的常用菜单,例如文本和图 像排序和对齐、拖放操作、MDI、溢出和访问菜单命令的其他模式。

     支持操作系统的典型外观和行为。
     对所有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事
    件相同。
    下表显示了 MenuStrip 和关联类的一些特别重要的属性。
    System.Windows.Forms.ToolStripItem.MergeAction
    System.Windows.Forms.ToolStripItem.MergeIndex
    System.Windows.Forms.Form.IsMdiContainer
    ShowItemToolTips
    CanOverflow
    ShortcutKeys
    ShowShortcutKeys
    下表显示了重要的 MenuStrip 同伴类。
    MdiWindowListItem
    说明
    获取或设置用于显示 MDI 子窗体列表的 ToolStripMenuItem。
    获取或设置 MDI 应用程 序中子菜单与父菜单合 并的方式。
    获取或设置 MDI 应用程 序的菜单中合并项的位 置。
    获取或设置一个值,该值 指示窗体是否为 MDI 子 窗体的容器。
    获取或设置一个值,该值 指示是否为 MenuStrip 显示工具提示。
    获取或设置一个值,该值 指示 MenuStrip 是否支 持溢出功能。
    获取或设置与 ToolStripMenuItem 关 联的快捷键。
    获取或设置一个值,该值 指示与 ToolStripMenuItem 关 联的快捷键是否显示在 ToolStripMenuItem 旁 边。
    类 说明

    ToolStripMenuItem
    ContextMenuStrip
    ToolStripDropDown
    表示在 MenuStrip 或 ContextMenuStrip 上显示的 可选择选项。
    表示快捷菜单。
    表示当用户单击 ToolStripDropDownButton 或较高 级菜单项时,使用户可以从列表中选择单个项的控件。
    为派生自 ToolStripItem 的控件提供基本功能,当单 击控件时显示下拉项。
    ToolStripDropDownItem

    展开全文
  • mschart.ocx 是一款与图形报表有关的控件,很多人特别是初接触VB的朋友,都曾询问过这个控件的使用方法,的确,学会以了mschart确实对提升编程效率起了很大作用的,因为mschart.ocx功能确实强大,本压缩包内的实例...
  • SVG矢量图形控件 WEB版本 希望对您有所帮助
  • VB 控件数组画图.rar

    2019-07-10 09:37:47
    VB 控件数组画图,每次输出新图形,前面的清除,可以画直线、矩形、圆。具体的代码操作,请看如下:  Private Sub Form_Load()  Picture1.Scale (0, 0)-(10, 10) '设置坐标系  End Sub  Private Sub Command1_...
  • VB常用控件介绍

    千次阅读 2018-02-16 16:24:30
    2、Label(标签)控件 3、TextBox(文本框)控件 4、RichTextBox控件 5、NumericUpDown控件 6、Button(按钮)控件 7、GroupBox(分组框)控件 8、RadioButton(单选按钮)控件 9、CheckBox(复选框)控件 10...
  • VB为文本框控件增加背景图片和渐变色特效,看到了吗?文本框的背景可以是你自定义的图像,也可以是自定义的渐变色,可以使用逐变颜色做为背景,可以为你的textbox增加背景,可用状态(可以自定义)。
  • AnyCAD C#三维图形控件 使用说明
  • 内容索引:VB源码,界面编程,界面控件 非常经典的VB常用图形界面控件包,包含近20种界面控件,含有示例文件。这些控件主要有:  vkCommand按钮控件(类似XP图标风格);  vkListBox列表框控件;  vkToggleButton计数...
  • VB控件大全属性详解___选项卡.介绍了选项卡的相关属性方法 事件
  • MicroDraw图形控件最新版本 最新版本详情咨询:VX:zhangty426 MicroDraw SDK For Windows,支持windows9x/ME/XP/7/8 发行方式:单机版、开发版本、网络版、B/S版本; MicroDraw图形控件是国内专业图形组件(中间件),...
  • 一款VB曲线绘制控件

    2021-05-16 20:32:22
    内容索引:VB源码,图形处理,曲线控件 一款VB曲线绘制控件,实例是一个漏电流绘制曲线原形,根据数据不同适时生成曲线图,控件小巧,使用方便,可以嵌入到ASP代码中,全部使用VB标准的图形功能。可以从数据库记录集中...
  • 一、VB控件集,控件集内含ListView、漂亮按钮、下拉列表、TAB窗体选项卡、树形菜单控件、窗体滑动菜单、分组菜单,可折叠展开的菜单等。以前就更新过,现在修正了不少控件中的小错误,更接近完善了,相信这些控件...
  • VB图形二唯码编程.zip

    2021-08-16 23:34:19
    利用第三方Gma.QrCodeNet.Encoding.dll和ThoughtWorks.QRCode.DLL进行图形二唯码编程
  • 摘要:VB源码,图形处理,图像缩放,仿Photoshop VB功能超多的图像处理控件程序演示,控件名为ExtendPictureBox.ocx,仿Photoshop滤镜的众多功能,可以实现DrawRegularPolygon、 DrawStar、DrawDiamond等图形方法,支持...
  • 用于生成任何16位PCM Wav文件的图形显示的控件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,594
精华内容 3,837
关键字:

vb的图形控件不包括