Управление генерацией VB.NET - PullRequest
0 голосов
/ 28 ноября 2011

Я хотел бы исправить проблему генерации, которая возникает с новым элементом управления в интерфейсе.

Мой элемент управления не отображается в интерфейсе, но добавляет новые свойства в существующие элементы управления.Каждый раз, когда я запускаю программу, она удаляет объект, компилирует и создает его заново.Обычно я ничего не терял, но случилось так, что однажды у меня произошла ошибка, и она не воссоздала контроль со всеми данными, которые я ввел.Таким образом, каждое свойство, которое я связал с другими элементами управления, потеряно, и они имеют решающее значение для приложения.

Я пытался поместить свой элемент управления в другую 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...