Foxtable(狐表)用户栏目专家坐堂 → 窗口内的数据传递


  共有5755人关注过本帖平板打印复制链接

主题:窗口内的数据传递

帅哥哟,离线,有人找我吗?
逛逛
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12129 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/8/1 12:47:00 [只看该作者]

俺用自定义类解决

 

 

'*************** 用于窗口中的变量传递 *******************
'初始化:窗口的AfterLoad事件   Dim a As New zxb窗口级变量(e.Form)
'赋值: Dim a As zxb窗口级变量  = e.Form.panel.Controls("自定义变量")
'      a.Var(变量名) = 值      '变量不存在就新增变量
'取值: Dim a As zxb窗口级变量  = e.Form.panel.Controls("自定义变量")
'      值 = a.Var(变量名)     '变量不存在返回Nothong


Public Class zxb窗口级变量
    Inherits System.Windows.Forms.Control

    Private _Vars As Dictionary(Of String, Object)   '变量集合

    Sub New(ByVal frm As WinForm.Form)
        MyBase.New()
        me.Visible = False
        MyBase.Name = "自定义变量"
        _Vars = New Dictionary(Of String, Object)
        frm.Panel.Controls.Add(Me)   '加入到窗口的Panel,注意必须从Panel中取出
    End Sub

    Public WriteOnly Property addVar(ByVal name As String) As Object
        Set(ByVal value As Object)
            If _Vars.ContainsKey(name) Then
                MessageBox.Show("变量重复,请核对!", "提醒:", MessageBoxButtons.OK)
            Else
                _Vars.Add(name, value)
            End If
        End Set
    End Property

    '获取或设置变量的值
    Public Property Var(ByVal Name As String) As Object
        Get
            If _Vars.ContainsKey(Name) Then
                Return _Vars(Name)
            Else
                Return MessageBox.Show("变量不存在,请核对!", "提醒:", MessageBoxButtons.OK)
                Return Nothing
            End If
        End Get
        Set(ByVal value As Object)
            If _Vars.ContainsKey(Name) Then
                '存在,就赋值
                _Vars(Name) = value
            Else
                '不存在,就新建变量赋值
                addVar(Name) = value
            End If
        End Set
    End Property
End Class


 回到顶部
总数 13 1 2 下一页