Click here to Skip to main content
15,885,546 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

I'm new here!!!

I just want to ask if is it possible to add a property within a property at VB.Net.

Sample
VB
Public Class Form1

        Private xproperties As PreferenceProperties

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            xproperties = New PreferenceProperties

            PropertyGrid1.SelectedObject = xproperties
        End Sub

    End Class

Public Class PreferenceProperties

    Private DBDetails As DatabaseProperties

    Public Sub New()
        DBDetails = New DatabaseProperties
    End Sub

    <Category("Connection")> _
    <Description("")> _
    <DisplayName("Database Properties")> _
    Public Property Database() As DatabaseProperties
        Get
            Return DBDetails
        End Get
        Set(ByVal value As DatabaseProperties)
            DBDetails = value
        End Set
    End Property


End Class

Public Class DatabaseProperties
    Private DBHost As String
    Private DBPort As Integer
    Private DBUser As String
    Private DBName As String
    Private DBPass As String

    Public Sub New()
        Me.DBHost = String.Empty
        Me.DBPort = 3306
        Me.DBUser = String.Empty
        Me.DBName = String.Empty
        Me.DBPass = String.Empty
    End Sub

    <Category("Connection")> _
    <Description("Host Name/IP address of the server where the database resides.")> _
    <DefaultValue(GetType(String), "")> _
    <DisplayName("Host Address")> _
    <Browsable(True)> _
    <ReadOnlyAttribute(False)> _
    Public Property HostName() As String
        Get
            Return Me.DBUser
        End Get
        Set(ByVal value As String)
            Me.DBUser = value
        End Set
    End Property


    <Category("Connection")> _
    <Description("The name of the database that you will be connected.")> _
    <DefaultValue(GetType(String), "")> _
    <DisplayName("Database Name")> _
    <Browsable(True)> _
    <ReadOnlyAttribute(False)> _
    Public Property DatabaseName() As String
        Get
            Return Me.DBName
        End Get
        Set(ByVal value As String)
            Me.DBName = value
        End Set
    End Property

    <Category("Connection")> _
    <Description("Port number that the database server is using. The default is 3306.")> _
    <DefaultValue(GetType(Integer), "3306")> _
    <DisplayName("Port Number")> _
    <Browsable(True)> _
    <ReadOnlyAttribute(False)> _
    Public Property PortNumber() As Integer
        Get
            Return Me.DBPort
        End Get
        Set(ByVal value As Integer)
            Me.DBPort = value
        End Set
    End Property



    <Category("Security")> _
    <Description("User name to be use in connecting the server.")> _
    <DefaultValue(GetType(String), "")> _
    <DisplayName("UserName")> _
    <Browsable(True)> _
    <ReadOnlyAttribute(False)> _
    Public Property UserName() As String
        Get
            Return Me.DBUser
        End Get
        Set(ByVal value As String)
            Me.DBUser = value
        End Set
    End Property

    <Category("Security")> _
    <Description("Password to be use in connecting the server.")> _
    <DefaultValue(GetType(String), "")> _
    <DisplayName("Password")> _
    <Browsable(True)> _
    <PasswordPropertyText(True)> _
    <ReadOnlyAttribute(False)> _
    Public Property Password() As String
        Get
            Return Me.DBPass
        End Get
        Set(ByVal value As String)
            Me.DBPass = value
        End Set
    End Property

End Class


This works with when you are in source code, but once you set the property to propertygrid the property becomes readonly.


Can someone help me on this?

Thanks in advance...
Posted
Updated 11-Jan-13 17:14pm
v4
Comments
PIEBALDconsult 11-Jan-13 23:02pm    
What does the compiler tell you? I don't really understand the question. The code seems fairly reasonable, but don't have much experience with VB.
SherMags 12-Jan-13 0:25am    
Hi PIEBALDconsult,

The code is good, but when i load it to propertygrid the "Database Properties" item was disabled and I can't view the properties of the database.
PIEBALDconsult 12-Jan-13 0:34am    
Then I wouldn't be any help. Good luck.
Sandeep Mewara 11-Jan-13 23:13pm    
Your sample code above does not say anything of property-in-property. All looks ok. Can you be clearer on what you seek?

1 solution

This was already solved

www.daniweb.com[Add property to a property]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900