Bonjour

Je m'interroge sur ce qui semble être au premier abord une bizarrerie sans logique du langage. Je prends le cas de trois propriétés :
- Size
- Location
- Linkarea (propriété de la classe Linklabel)

Ces trois propriétés ont en commun d'être de structures, qui plus est de la même forme (à savoir, deux integer). Ce qui explique qu'on peut toutes trois les modifier par la syntaxe : Objet.propriété = New propriété(x, y)

Le hic, c'est lorsqu'on cherche à éviter cette syntaxe en passant par les "sous-propriétés" (je ne connais pas le terme adéquat). Là, tous aux abris, il semble qu'il y ait une solution différente à chaque fois.

1. Pour Size, on peut directement utiliser les sous-propriétés Width et Height, par exemple en écrivant : Button1.Width = 300

2. Pour Location, on peut aussi utiliser les sous-propriétés... à condition d'utiliser d'autres noms que ceux qui sont fournis quand on déploie l'arborescence de la structure dans la fenêtre des propriétés. X et Y sont donc inutilisables, mais on pourra en revanche utiliser Top et Left.

3. Pour Linkarea, on ne peut rien utiliser du tout. Ni Truc.Linkarea.Length ni Truc.Length ne sont acceptés dans une affectation (on reçoit un charmant message "Cette expression est ne valeur et ne peut donc être la cible d'une assignation" - l'aide de MSDN sur ce point semble avoir été écrite en serbo-croate et jamais traduite).

Une âme charitable pourrait-elle m'éclairer ?