Bonjour à tous,
J'ai besoin pour mon projet de créer une classe adaptable à tous mes écrans et qui permettrait de créer des contrôles dans un groupBox défini sur cet écran.
En code, j'en suis la:
Jusque la tout va bien. L'instance de ma classe sur ma form et l'appel à la fonction font bien le résultat escompté : Créer un contrôle sur ma form.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Class Form1 Private extraFields As New ExtraFields Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load extraFields.addExtraControl("LivreA01", Me) End Sub End Class Public Class ExtraFields Public Function addExtraControl(ByVal name As String, ByRef form As system.windows.forms.form1) As Boolean Dim txtextra As New System.Windows.Forms.TextBox txtextra.Top = 10 txtextra.Left = 10 form.GroupBox1.Controls.Add(txtextra) End Function End Class
Le problème est que ma définition de ma fonction dans ma classe précise qu'il s'agit du type form1. Donc j'ai accès aux membres et je peux développer.
Par contre, si j'instancie ma classe sur form2, ca ne fonctionne plus évidement.
Il faudrait je pense que je définisse le paramètre passé comme étant du type object et que je fasse un casting vers le type de la form sur laquelle je me trouve. Cela me permettrait alors d'avoir accès aux membres et méthode de cette classe définie.
J'ai un peu de mal à voir par quel moyen y arriver.
J'ai beau testé mais il me donne souvent l'erreur que mon casting n'est pas valide... Suis-je dans la bonne direction ou alors complètement à l'ouest pour faire ce genre de chose?
A savoir que les contrôles que je crée simplement ici, devront être créés et stockés dans un tableau de contrôles sur ma form, qu'ils devront être lié à un databinding, ....
Je n'en suis pas encore la, il faudrait déjà qu'à partir de ma classe je puisse àccèder à ma form.
Merci pour vos idées de réalisation.
Partager