回 帖 发 新 帖 刷新版面

主题:急切求助:自定义控件的疑问

Imports System.Drawing.Drawing2D

Public Class ellipsectl
    Inherits System.Windows.Forms.UserControl
    Private type As Boolean

    Public Property pmark() As Boolean
        Get
            Return type

        End Get
        Set(ByVal Value As Boolean)
            type = Value
        End Set
    End Property
    Private ptimeE As Integer
    Public Property ptime() As Integer
        Get
            Return ptimeE
        End Get
        Set(ByVal Value As Integer)
            ptimeE = Value
        End Set
    End Property
    Private timeE As Integer
    Public Property time() As Integer
        Get
            Return timeE
        End Get
        Set(ByVal Value As Integer)
            timeE = Value
        End Set
    End Property
'windows 生成的代码
'画椭圆
    Dim startX As Integer
    Dim startY As Integer


    Protected Sub ellipsectl_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

        Dim pen As New System.Drawing.Pen(System.Drawing.Color.Blue)

        Dim sb As System.Drawing.Brush
        sb = New SolidBrush(System.Drawing.Color.Green)

        If type = True Then
            e.Graphics.DrawEllipse(pen, startX, startY, Me.Width - 1, Me.Height - 1)

            e.Graphics.FillEllipse(sb, New Rectangle(startX + Me.Width / 2 - 4, startY + Me.Height / 2 - 4, 8, 8))
        Else
            e.Graphics.DrawEllipse(pen, startX, startY, startX + Me.Width - 1, startY + Me.Height - 1)
        End If

    End Sub
    '随时更新
    Private Sub ellipsectl_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
        Me.Refresh()
    End Sub

    Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
        Timer1.Interval = 1000
        Me.Refresh()
    End Sub
End Class

但是加载到实际的程序中时,无法像button一样定义控件数组
 当 dim e as ellipsectl={ellipsectl1,ellipsectlel2,lipsectlel3,lipsectl4}时,提示错误。

回复列表 (共11个回复)

沙发

VB.NET不再支持控件数组

板凳

你说的不对吧
我在编程中用了label的控件数组即
 Dim pst() As Label = {frm5.Label173, frm5.Label172, frm5.Label171}
然后根据数组的定义进行依次赋值,结果程序运行正确

但是我的自定义控件就不能如此,请问为什么

3 楼

这个不是VB6中存在的控件数组,真正的控件数组就是窗体上摆着label1(1),label1(2)
而你现在是label173,label172,然后手动添加到数组里面。

当 dim e as ellipsectl={ellipsectl1,ellipsectlel2,lipsectlel3,lipsectl4}时,提示错误。
----------------------------------------------------------------------------
语法问题,自然出错

4 楼

dim e as ellipsectl={ellipsectl1,ellipsectlel2,elipsectlel3,elipsectl4}
依旧提示错误 
敬请高手指点

5 楼

你之前也提到了
Dim pst() As Label = {frm5.Label173, frm5.Label172, frm5.Label171}
定义了一个数组,为什么这里不这样做呢?
注意语法:
dim e as ellipsectl={ellipsectl1,ellipsectlel2,elipsectlel3,elipsectl4}
是错误的
因为少了个“()”……

6 楼

Dim a() As ellipsectl = {Ellipsectl1, Ellipsectl2, Ellipsectl3, Ellipsectl4}
仍然不行!!!

7 楼

你帮我在你的机器上调试一下行吗???
谢谢恩人 
否则我的毕业设计就没戏了  
大恩大德 没齿难忘!!

8 楼

ellipsectl是什么控件

9 楼

椭圆控件 你可以在你的机器中用vb.net调试一下

10 楼

我没这个控件,你确定控件名没错?

我来回复

您尚未登录,请登录后再回复。点此登录或注册