Dommage qu'ils aient disparus, les contrôles indexés de VB6.
Car pour moi, leur utilité était surtout pour créer des contrôles
dynamiquement dans une forme.
Juste un Label1(0) dans la forme de départ, puis des load label1(i)
successifs et hop, je créé de nouveaux objets label dans ma forme.
La transposition de ce genre d'application utilise des
"microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
Question: comme cette classe implémente mieux que je ne le ferai moi même ce
comportement indexé, je ne vais donc pas essayer de les refaire, MAIS la
compatibilité (la fameuse compatibilité) est-elle assurée sur ces objets
(sachant les exemples fournis dans les bouquins microsoft .NET de fin 2002
ne fonctionnent plus à mi 2004 directement car les classes d'objets ont
évolués entre temps) car il faut quand même continuer à maintenir des
applications au delà de 18 mois.
Ou alors y-a-t-il une bibliothèque tierce partie qui impléme ces contrôles,
(surtout s'il y a le source ...)
Ou alors, mais uniquement si y'a pas le choix, dois-je MOI MEME les
implémenter (SVP: répondez moi que NON sinon ...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Bonjour,
Dommage qu'ils aient disparus, les contrôles indexés de VB6. Car pour moi, leur utilité était surtout pour créer des contrôles dynamiquement dans une forme.
Juste un Label1(0) dans la forme de départ, puis des load label1(i) successifs et hop, je créé de nouveaux objets label dans ma forme.
On peut faire exactement la même chose en .Net. Vous pouvez instancier dynamiquement n'importe quel contrôle et l'ajouter à votre Form.
Le fait que les gestionnaires d'événements puissent être partagés sans problème par plusieurs contrôles, voire être activés / désactivés à l'exécution (AddHandler / RemoveHandler), rend d'ailleurs les choses encore plus souples.
La transposition de ce genre d'application utilise des "microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
Dommage qu'ils aient disparus, les contrôles indexés de VB6.
Car pour moi, leur utilité était surtout pour créer des contrôles
dynamiquement dans une forme.
Juste un Label1(0) dans la forme de départ, puis des load label1(i)
successifs et hop, je créé de nouveaux objets label dans ma forme.
On peut faire exactement la même chose en .Net. Vous pouvez instancier
dynamiquement n'importe quel contrôle et l'ajouter à votre Form.
Le fait que les gestionnaires d'événements puissent être partagés sans
problème par plusieurs contrôles, voire être activés / désactivés à
l'exécution (AddHandler / RemoveHandler), rend d'ailleurs les choses
encore plus souples.
La transposition de ce genre d'application utilise des
"microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
Dommage qu'ils aient disparus, les contrôles indexés de VB6. Car pour moi, leur utilité était surtout pour créer des contrôles dynamiquement dans une forme.
Juste un Label1(0) dans la forme de départ, puis des load label1(i) successifs et hop, je créé de nouveaux objets label dans ma forme.
On peut faire exactement la même chose en .Net. Vous pouvez instancier dynamiquement n'importe quel contrôle et l'ajouter à votre Form.
Le fait que les gestionnaires d'événements puissent être partagés sans problème par plusieurs contrôles, voire être activés / désactivés à l'exécution (AddHandler / RemoveHandler), rend d'ailleurs les choses encore plus souples.
La transposition de ce genre d'application utilise des "microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Thierry Bertrand
Cela ne m'a pas semblé aussi simple, en tout cas quand j'ai commencé ma transposition, car j'ai essayé d'être "propre" et je voulais supprimer toutes ces références pas très nettes (jeu de mot ...) mais j'ai abandonné, peut être un peu vite. Soit (mais je fatigue des neurones ...)
Je vais donc prendre le temps de parcourir les références que vous indiquez, s'il faut VRAIMENT que je travaille PLUS ...
Merci en tout cas.
"Patrick Philippot" a écrit dans le message de news: Oe9tgf#
Bonjour,
> Dommage qu'ils aient disparus, les contrôles indexés de VB6. > Car pour moi, leur utilité était surtout pour créer des contrôles > dynamiquement dans une forme. > > Juste un Label1(0) dans la forme de départ, puis des load label1(i) > successifs et hop, je créé de nouveaux objets label dans ma forme.
On peut faire exactement la même chose en .Net. Vous pouvez instancier dynamiquement n'importe quel contrôle et l'ajouter à votre Form.
Le fait que les gestionnaires d'événements puissent être partagés sans problème par plusieurs contrôles, voire être activés / désactivés à l'exécution (AddHandler / RemoveHandler), rend d'ailleurs les choses encore plus souples.
> La transposition de ce genre d'application utilise des > "microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Cela ne m'a pas semblé aussi simple, en tout cas quand j'ai commencé ma
transposition, car j'ai essayé d'être "propre" et je voulais supprimer
toutes ces références pas très nettes (jeu de mot ...)
mais j'ai abandonné, peut être un peu vite. Soit (mais je fatigue des
neurones ...)
Je vais donc prendre le temps de parcourir les références que vous indiquez,
s'il faut VRAIMENT que je travaille PLUS ...
Merci en tout cas.
"Patrick Philippot" <patrick.philippot@mainsoft.xx.fr> a écrit dans le
message de news: Oe9tgf#9EHA.4028@TK2MSFTNGP15.phx.gbl...
Bonjour,
> Dommage qu'ils aient disparus, les contrôles indexés de VB6.
> Car pour moi, leur utilité était surtout pour créer des contrôles
> dynamiquement dans une forme.
>
> Juste un Label1(0) dans la forme de départ, puis des load label1(i)
> successifs et hop, je créé de nouveaux objets label dans ma forme.
On peut faire exactement la même chose en .Net. Vous pouvez instancier
dynamiquement n'importe quel contrôle et l'ajouter à votre Form.
Le fait que les gestionnaires d'événements puissent être partagés sans
problème par plusieurs contrôles, voire être activés / désactivés à
l'exécution (AddHandler / RemoveHandler), rend d'ailleurs les choses
encore plus souples.
> La transposition de ce genre d'application utilise des
> "microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
Cela ne m'a pas semblé aussi simple, en tout cas quand j'ai commencé ma transposition, car j'ai essayé d'être "propre" et je voulais supprimer toutes ces références pas très nettes (jeu de mot ...) mais j'ai abandonné, peut être un peu vite. Soit (mais je fatigue des neurones ...)
Je vais donc prendre le temps de parcourir les références que vous indiquez, s'il faut VRAIMENT que je travaille PLUS ...
Merci en tout cas.
"Patrick Philippot" a écrit dans le message de news: Oe9tgf#
Bonjour,
> Dommage qu'ils aient disparus, les contrôles indexés de VB6. > Car pour moi, leur utilité était surtout pour créer des contrôles > dynamiquement dans une forme. > > Juste un Label1(0) dans la forme de départ, puis des load label1(i) > successifs et hop, je créé de nouveaux objets label dans ma forme.
On peut faire exactement la même chose en .Net. Vous pouvez instancier dynamiquement n'importe quel contrôle et l'ajouter à votre Form.
Le fait que les gestionnaires d'événements puissent être partagés sans problème par plusieurs contrôles, voire être activés / désactivés à l'exécution (AddHandler / RemoveHandler), rend d'ailleurs les choses encore plus souples.
> La transposition de ce genre d'application utilise des > "microsoft.visualbasic.compatibilty.VB6.xxxArray" qui les remplacent.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Thierry Bertrand
J'y croyais pas, et pourtant c'est vrai. C'est assez simple finalement. Pour la beauté du coup, et parce qu'il y a sûrement des débutants en .net aussi ici, ci dessous un source très simple (basé sur une forme avec deux boutons) qui créé des labels dynamiquement possédant un index, une méthode unload (juste pour le plaisir...) et qui répondent au click. Stockés dans une liste, on peut les manipuler comme on veut...
Maitenant, au boulot de transpo complète pour des sources plus nets (bon ok, je l'ai déjà faite celle là) :-)))
Public Class Form1
Inherits System.Windows.Forms.Form
code généré par le Conceoteur Windows Forms
' ici commence le boulot
#Region "définition du lblArray"
Public Class LblArray
Inherits System.Windows.Forms.Label
Private lIndex As Long
Public Sub New()
MyBase.new()
AddHandler Me.Click, AddressOf lblClicked
End Sub
Public Sub Unload()
MyBase.Finalize()
End Sub
Public Property Index() As Long
Get
Index = lIndex
End Get
Set(ByVal Value As Long)
lIndex = Value
End Set
End Property
Private Sub lblClicked(ByVal source As Object, ByVal e As EventArgs)
MsgBox("Ce message provient du label dynamique n°" & Str(Index))
End Sub
End Class
#End Region
' fin du boulot
Dim NbLabels As Integer
Dim LstlblCTL As New Collection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim lblCTL As LblArray
lblCTL = New LblArray
NbLabels = NbLabels + 1
lblCTL.Index = NbLabels
lblCTL.Width = 50
lblCTL.Left = (NbLabels * (10 + lblCTL.Width))
lblCTL.Top = 10
lblCTL.Height = 20
lblCTL.Text = "Label" & Str(NbLabels)
lblCTL.Visible = True
lblCTL.BackColor = System.Drawing.Color.White
Me.Controls.Add(lblCTL)
LstlblCTL.Add(lblCTL)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
NbLabels = -1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i As Integer
Dim lblCTL As LblArray
For Each lblCTL In LstlblCTL
lblCTL.Unload()
Next
LstlblCTL = New Collection
NbLabels = -1
End Sub
End Class
J'y croyais pas, et pourtant c'est vrai. C'est assez simple finalement.
Pour la beauté du coup, et parce qu'il y a sûrement des débutants en .net
aussi ici, ci dessous un source très simple (basé sur une forme avec deux
boutons) qui créé des labels dynamiquement possédant un index, une méthode
unload (juste pour le plaisir...) et qui répondent au click.
Stockés dans une liste, on peut les manipuler comme on veut...
Maitenant, au boulot de transpo complète pour des sources plus nets (bon ok,
je l'ai déjà faite celle là) :-)))
Public Class Form1
Inherits System.Windows.Forms.Form
code généré par le Conceoteur Windows Forms
' ici commence le boulot
#Region "définition du lblArray"
Public Class LblArray
Inherits System.Windows.Forms.Label
Private lIndex As Long
Public Sub New()
MyBase.new()
AddHandler Me.Click, AddressOf lblClicked
End Sub
Public Sub Unload()
MyBase.Finalize()
End Sub
Public Property Index() As Long
Get
Index = lIndex
End Get
Set(ByVal Value As Long)
lIndex = Value
End Set
End Property
Private Sub lblClicked(ByVal source As Object, ByVal e As EventArgs)
MsgBox("Ce message provient du label dynamique n°" & Str(Index))
End Sub
End Class
#End Region
' fin du boulot
Dim NbLabels As Integer
Dim LstlblCTL As New Collection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim lblCTL As LblArray
lblCTL = New LblArray
NbLabels = NbLabels + 1
lblCTL.Index = NbLabels
lblCTL.Width = 50
lblCTL.Left = (NbLabels * (10 + lblCTL.Width))
lblCTL.Top = 10
lblCTL.Height = 20
lblCTL.Text = "Label" & Str(NbLabels)
lblCTL.Visible = True
lblCTL.BackColor = System.Drawing.Color.White
Me.Controls.Add(lblCTL)
LstlblCTL.Add(lblCTL)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
NbLabels = -1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
J'y croyais pas, et pourtant c'est vrai. C'est assez simple finalement. Pour la beauté du coup, et parce qu'il y a sûrement des débutants en .net aussi ici, ci dessous un source très simple (basé sur une forme avec deux boutons) qui créé des labels dynamiquement possédant un index, une méthode unload (juste pour le plaisir...) et qui répondent au click. Stockés dans une liste, on peut les manipuler comme on veut...
Maitenant, au boulot de transpo complète pour des sources plus nets (bon ok, je l'ai déjà faite celle là) :-)))
Public Class Form1
Inherits System.Windows.Forms.Form
code généré par le Conceoteur Windows Forms
' ici commence le boulot
#Region "définition du lblArray"
Public Class LblArray
Inherits System.Windows.Forms.Label
Private lIndex As Long
Public Sub New()
MyBase.new()
AddHandler Me.Click, AddressOf lblClicked
End Sub
Public Sub Unload()
MyBase.Finalize()
End Sub
Public Property Index() As Long
Get
Index = lIndex
End Get
Set(ByVal Value As Long)
lIndex = Value
End Set
End Property
Private Sub lblClicked(ByVal source As Object, ByVal e As EventArgs)
MsgBox("Ce message provient du label dynamique n°" & Str(Index))
End Sub
End Class
#End Region
' fin du boulot
Dim NbLabels As Integer
Dim LstlblCTL As New Collection
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim lblCTL As LblArray
lblCTL = New LblArray
NbLabels = NbLabels + 1
lblCTL.Index = NbLabels
lblCTL.Width = 50
lblCTL.Left = (NbLabels * (10 + lblCTL.Width))
lblCTL.Top = 10
lblCTL.Height = 20
lblCTL.Text = "Label" & Str(NbLabels)
lblCTL.Visible = True
lblCTL.BackColor = System.Drawing.Color.White
Me.Controls.Add(lblCTL)
LstlblCTL.Add(lblCTL)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
NbLabels = -1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click