Я хотел бы исправить проблему генерации, которая возникает с новым элементом управления в интерфейсе.
Мой элемент управления не отображается в интерфейсе, но добавляет новые свойства в существующие элементы управления.Каждый раз, когда я запускаю программу, она удаляет объект, компилирует и создает его заново.Обычно я ничего не терял, но случилось так, что однажды у меня произошла ошибка, и она не воссоздала контроль со всеми данными, которые я ввел.Таким образом, каждое свойство, которое я связал с другими элементами управления, потеряно, и они имеют решающее значение для приложения.
Я пытался поместить свой элемент управления в другую DLL, но у меня была та же проблема.Мой контрольный код:
Imports System.Windows.Forms
Imports System.ComponentModel
Imports Ministere.MQP.Commun.Enums
''' <summary>
''' Ajoute 3 nouvelles propriétés aux contrôles pour la recherche dynamique d'MQP
''' </summary>
<ProvideProperty("Champ", GetType(Control))> _
<ProvideProperty("Valeur", GetType(Control))> _
<ProvideProperty("Comparaison", GetType(Control))> _
Public Class ProprietesEtendues
Implements IExtenderProvider
Private _champ As New Dictionary(Of IntPtr, String)
Private _val As New Dictionary(Of IntPtr, Object)
Private _comp As New Dictionary(Of IntPtr, CompareType)
'Propriété champ de la base de donnée
Public Function GetChamp(ByVal c As Control) As String
Dim strRetour As String = ""
_champ.TryGetValue(c.Handle, strRetour)
Return strRetour
End Function
<DefaultValue("")> _
Public Sub SetChamp(ByVal c As Control, ByVal value As String)
_champ(c.Handle) = value
End Sub
'Propriété Valeur
<TypeConverter(GetType(StringConverter))> _
Public Function GetValeur(ByVal c As Control) As Object
Dim objRetour As Object = Nothing
_val.TryGetValue(c.Handle, objRetour)
Return objRetour
End Function
<DefaultValue("")> _
<TypeConverter(GetType(StringConverter))> _
Public Sub SetValeur(ByVal c As Control, ByVal value As Object)
_val(c.Handle) = value
End Sub
'Propriété Comparaison
Public Function GetComparaison(ByVal c As Control) As CompareType
Dim ctRetour As CompareType = CompareType.Egal
_comp.TryGetValue(c.Handle, ctRetour)
Return ctRetour
End Function
<DefaultValue(CompareType.Egal)> _
Public Sub SetComparaison(ByVal c As Control, ByVal value As CompareType)
_comp(c.Handle) = value
End Sub
Public Function CanExtend(ByVal target As [Object]) As Boolean Implements IExtenderProvider.CanExtend
Return True
End Function
End Class