Bonjour,

Lorsqu'on crée son propre UserControl, et qu'on l'ajoute à un formulaire, Visual Studio 2005, remplie automatiquement sa methode InitializeComponent, on définissant les propriétés du Usercontrol. Ce qui cause des problèmes si le UserControls à des valeurs par défaut.

Par exemple : Dans le UserControl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class MyUserControl
 
    Private _MyProperty As String = "0.000000"
    Public Property MyProperty() As String
        Get
            Return Me._MyProperty
        End Get
        Set(value As String)
            Me._MyProperty = value
        End Set
    End Property
 
End Class
Dans le formulaire qui contient mon UserControl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Public Class Form1
 
    Public Sub New()
 
        ' Cet appel est requis par le Concepteur Windows Form.
        InitializeComponent
 
    End Sub
 
End Class
Dans le fichier form1.Designer.vb
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
22
23
    . . .
 
    'REMARQUE*: la procédure suivante est requise par le Concepteur Windows Form
    'Elle peut être modifiée à l'aide du Concepteur Windows Form.  
    'Ne la modifiez pas à l'aide de l'éditeur de code.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
 
        . . .
 
        '
        'MyUserControl1
        '
        Me.MyUserControl1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.MyUserControl1.MyProperty = "0.000000"
        Me.MyUserControl1.Location = New System.Drawing.Point(0, 18)
        Me.MyUserControl1.Name = "MyUserControl1"
        Me.MyUserControl1.Size = New System.Drawing.Size(304, 123)
        Me.MyUserControl1.TabIndex = 0
 
        . . .
 
    End Sub
Comment faire en sorte (certainement un attribut sur la propriété MyUserControl.MyProperty) que VS2005 ne génère pas la ligne d'initialisation de la propriété dans InitializeComponent ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Me.MyUserControl1.MyProperty = "0.000000"