Propriétés de controle utilisateur en vb.net

Résolu
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006 - 28 janv. 2006 à 14:59
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006 - 28 janv. 2006 à 20:14
Bonjour,
je voudrais savoir s'il est possible de créer des propriétés de controles utilisateurs qui comprennent des sous proprietés.
Comme le propriété Font par exemple qui qd on clique sur le + fait apparaitre name,size,unit ....
Merci d'avance

6 réponses

Utilisateur anonyme
28 janv. 2006 à 19:08
Piouf, après quelques recherche j'ai trouvé.
Il fallait lui dire que c'était un groupe de propriété.
Donc, ca donne

Public Class Ctl

<System.ComponentModel.TypeConverter(GetType(System.ComponentModel.ExpandableObjectConverter))> _
Public Class FontProperty
Private m_Bold As Boolean
Private m_Name As String

Public Property Bold() As Boolean
Get
Return MyClass.m_Bold
End Get
Set(ByVal value As Boolean)
MyClass.m_Bold = value
End Set
End Property
Public Property Name() As String
Get
Return MyClass.m_Name
End Get
Set(ByVal value As String)
MyClass.m_Name = value
End Set
End Property
End Class

Private m_Font As New FontProperty

Public ReadOnly Property Font() As FontProperty
Get
Return m_Font
End Get
End Property

End Class

Voili, voilou,
Maintenant, faut que vs2003 le prennent en charge.

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
3
Utilisateur anonyme
28 janv. 2006 à 16:18
Bonjour,

Il faut faire une class qui comprens ces propriéts:

Public Class Font
Public Property Bold() As Boolean
Get
[...]
End Get
Set(ByVal value As Boolean)
[...]
End Set
End Property
Public Property Name() As String
Get
[...]
End Get
Set(ByVal value As String)
[...]
End Set
End Property
[...]
End Class

Ensuite la propriété renvoie la classe:

[...]
Private m_Font As New Font
Public ReadOnly Property Font() As Font
Get
Return m_Font
End Get
End Property
[...]

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
28 janv. 2006 à 16:51
Merci pour la réponse, mais j'aurais besoin de quelques précisions (je suis débutant en vb.net), car j'ai pas réussi à faire fonctionner.
La
Public Class Font, il faut bien le mettre en dehors du public class ctl (où ctl est le nom du controle utilisateur) ?
et sinon que faut il mettre dans les get de Bold et Name ? Return m_font.bold et m_font.name?
ou alors créer de nouvelles variables public ....
Bref je suis un peu dans le flou
0
Utilisateur anonyme
28 janv. 2006 à 17:15
Alors,
pour ce qui faut mettre dans les get, c'est à toi de voir selon ta classe. Par défaut, on met (pour la prop. Bold): Return MyClass.m_Bold
Sinon, il faut déclarer la Classe Font en public vu que ta propriété est en Public. Tu peut donc mettre la classe Font dans la class Ctl ou en dehors. C'est toi qui voit.
Ici, je l'ai mis dans la class Ctl (J'ai du renomer la class Font en FontProperty parsque j'utilisait déjà la propriété Font)

Public Class Ctl

Public Class FontProperty
Private m_Bold As Boolean
Private m_Name As String

Public Property Bold() As Boolean
Get
Return MyClass.m_Bold
End Get
Set(ByVal value As Boolean)
MyClass.m_Bold = value
End Set
End Property
Public Property Name() As String
Get
Return MyClass.m_Name
End Get
Set(ByVal value As String)
MyClass.m_Name = value
End Set
End Property
End Class

Private m_Font As New FontProperty
Public ReadOnly Property Font() As FontProperty
Get
Return m_Font
End Get
End Property

End Class

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
28 janv. 2006 à 17:52
bon j'ai recopié le code tel quel, il me le génère sans probleme.
Mais après quand j'utilise le controle sur une autre form, le champ correspondant à la proprieté est grisé et ne peut etre modifié. Et il est ecrit dedans: Nomprojet.Nomductl+FontProperty
Donc je sais pas d'ou peut venir ce probleme.
Je precise tout de meme que j'ai Visual Studio.net 2003 et pas la derniere version.
sinon en principe pour utiliser un ctl dans une form il suffit bien de faire generer la solution?
Voila désolé d'être un peu insistant. En tout cas je vois dans l'esprit coment c'est censé marcher mais ca ne marche pas dans la pratique.
0
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
28 janv. 2006 à 20:14
Merci beaucoup !!
Ca marche nickel
Merci d'avoir passé du temps à m'aider. Je vais pouvoir rentrer maintenant dans le vif du sujet
0
Rejoignez-nous