Pym Corp
Messages postés166Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention18 novembre 2007
-
16 janv. 2007 à 12:14
Pym Corp
Messages postés166Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention18 novembre 2007
-
16 janv. 2007 à 12:55
Bonjour,
J'ai un problème que j'ai essayé de vous résumer simplement. Je dispose d'une classe avec quelques propriétés ("Property"), nous appellerons cette classe "test" :
Public Class test
Private _layer1 As Point
Public Property layer1() As Point
Get
Return _layer1
End Get
Set(ByVal value As Point)
_layer1 = value
End Set
End Property
Private _layer2 As Point
Public Property layer2() As Point
Get
Return _layer2
End Get
Set(ByVal value As Point)
_layer2 = value
End Set
End Property
End Class
---
Ensuite on dispose d'une Form toute bête, "Form1" avec une Listview, qu'on appelle "list" et deux NumericUpDown, appellés "nudX" et "nudY"
Voici le code de la Form1 :
Public Class Form1
Dim test As New test
Private Sub nud_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nudX.ValueChanged, nudY.ValueChanged
Dim thePoint As Point
Select Case CType(sender, NumericUpDown).Name
Case nudX.Name
Select Case list.SelectedItems(0).Index
Case 0
thePoint = New Point(nudX.Value, test.layer1.Y)
Case 1
thePoint = New Point(nudX.Value, test.layer2.Y)
End Select
Case nudY.Name
Select Case list.SelectedItems(0).Index
Case 0
thePoint = New Point(test.layer1.X, nudY.Value)
Case 1
thePoint = New Point(test.layer2.X, nudY.Value)
End Select
End Select
End Sub
End Class
Le problème c'est que mon "vrai code" comporte une dizaine d'éléments dans la Listview et 4 NumericUpDown ce qui donne beaucoup beaucoup de lignes de code. Je pense qu'on doit pouvoir se débrouiller en ne faisant qu'un "Select Case" avec le sender et ensuite pouvoir faire une sorte de CType sur les propriétés.
Si vous voulez des précisions et que vous n'avez pas compris mon problème n'hésitez pas !
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 16 janv. 2007 à 12:37
Ben pourquoi la propriété n'est pas un array ? :
Public Class test
Private _layer As Point()
Public ReadOnly Property layer() As Point()
Get
Return _layer1
End Get
End Property
Sub New (ArraySize as Integer)
Redim _layer(ArraySize)
End Sub
End Class
Public Class Form1
Dim test As New Test(89) 'Le nombre d'éléments
Private Sub nud_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nudX.ValueChanged, nudY.ValueChanged
Dim thePoint As Point
Select Case CType(sender, NumericUpDown).Name
Case nudX.Name
thePoint = New Point(nudX.Value, test.layer(list.SelectedItems(0).Index).Y)
Case nudY.Name
thePoint = New Point(test.layer(list.SelectedItems(0).Index).X, nudY.Value)
End Select
End Sub
End Class