从其他表单

时间:2017-09-29 12:39:40

标签: vb.net forms properties

所以我有一个属性Column Widths,我用它来存储列索引和列宽,所以当我重新加载我的表单时,我的列宽度仍然存在(刷新功能),该部分工作100%。

''' <summary>
    ''' Stores the widths of the columns on the form. 
    ''' </summary>
    ''' <returns></returns>
    Public Property ColumnWidths As Dictionary(Of Integer, Integer)
        Get
            Return _columnWidths
        End Get
        Set(ByVal value As Dictionary(Of Integer, Integer))
            _columnWidths = value
        End Set
    End Property

但是当我更改显示的列时(当我在我的选项表单上时),我想要清除该属性。这就是问题所在。

Form1.ColumnWidths = Nothing

我尝试过使用公共变量,但这也不起作用。有趣的是,我已经在我的整个解决方案中使用了属性等,并且所有这些都是100%工作但是这只是磨削我的齿轮,因为当我从我的选项表单设置它时它没有保留值。

我甚至在Form1上有一个没有Get Set部件的属性,当我从选项表单设置它时工作正常。然而,这个属性不想被设置。

两个表单都在同一个命名空间内,它确实触发了属性的set部分,但_columnWidths值保持不变。它仍然有我添加到集合中的行。

1 个答案:

答案 0 :(得分:0)

将属性更改为“共享”允许“选项”表单在表单上访问Form1类。

''' <summary>
''' Stores the widths of the columns on the form. 
''' </summary>
''' <returns></returns>
Public Shared Property ColumnWidths As Dictionary(Of Integer, Integer)
    Get
        Return _columnWidths
    End Get
    Set(ByVal value As Dictionary(Of Integer, Integer))
        _columnWidths = value
    End Set
End Property