IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Problème sur composant comboBox hérité


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    csdcsdc
    Inscrit en
    Juin 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : csdcsdc

    Informations forums :
    Inscription : Juin 2004
    Messages : 83
    Points : 65
    Points
    65
    Par défaut [VB.NET] Problème sur composant comboBox hérité
    Bonjour,
    en train de realiser un composant comboBox hérité du comboBox normal.
    A la compile, tout se passe bien mais ca plante a l'appel.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    '
    '
    ' Composant NewComboBox
    '
    '
    Option Strict On
     
    <ToolboxBitmap(GetType(ComboBox))> _
    Public Class NewComboBox
     
        Inherits System.Windows.Forms.ComboBox
     
    #Region " Définition de la classe publique "
        Public Class clsItem
     
            Private sItem As String
            Private lItemData As Long
     
            Sub New(ByVal lItemData As Long, ByVal sItem As String)
                MyClass.lItemData = lItemData
                MyClass.sItem = sItem
            End Sub
     
            Public Shadows ReadOnly Property ToString() As String
                Get
                    Return sItem
                End Get
            End Property
     
            ReadOnly Property ItemData() As Long
                Get
                    Return lItemData
                End Get
            End Property
     
        End Class
    #End Region
     
    #Region " Code généré par le Concepteur Windows Form "
     
        Public Sub New()
            MyBase.New()
     
            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
     
        End Sub
     
        'La méthode substituée Dispose du UserControl pour nettoyer la liste des composants.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If Not (components Is Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub
     
        'Requis par le Concepteur Windows Form
        Private components As System.ComponentModel.IContainer
     
        'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée en utilisant le Concepteur Windows Form.  
        'Ne la modifiez pas en utilisant l'éditeur de code.
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
            components = New System.ComponentModel.Container
        End Sub
     
    #End Region
     
    #Region " Variables privées "
        Dim CONSTColorForEqual As System.Drawing.Color = System.Drawing.Color.White
        Dim CONSTColorForModified As System.Drawing.Color = System.Drawing.Color.Khaki
        Dim m_InitialIndex As Integer = -1
    #End Region
     
    #Region " Variables publiques "
        Public Event IndexModified(ByVal Modified As Boolean)
    #End Region
     
    #Region " Propriétés publiques "
        Public ReadOnly Property InitialIndex() As Integer
            Get
                Return m_InitialIndex
            End Get
        End Property
        Public ReadOnly Property IsModified() As Boolean
            Get
                If MyBase.SelectedIndex = m_InitialIndex Then
                    Return False
                Else
                    Return True
                End If
            End Get
        End Property
        Public Overrides Property SelectedIndex() As Integer
            Get
                Return MyBase.SelectedIndex
            End Get
            Set(ByVal Value As Integer)
                MyBase.SelectedIndex = Value
                m_InitialIndex = Value
                MyBase.BackColor = CONSTColorForEqual
            End Set
        End Property
    #End Region
     
    #Region " Méthodes publiques "
        Public Sub CancelChange()
     
            MyBase.SelectedIndex = m_InitialIndex
     
        End Sub
        Public Function SetIndexFromText(ByVal sMyText As String) As Long
     
            Dim i As Integer
            Dim clsMyClass As clsItem
     
            For i = 0 To MyBase.Items.Count - 1
                If sMyText.Equals(MyBase.Items(i).ToString()) Then
                    m_InitialIndex = i
                    MyBase.SelectedIndex = i
                    'clsMyClass = MyBase.SelectedItem
                    'SetIndexFromText = clsMyClass.ItemData()
                    Exit Function
                End If
            Next
     
            m_InitialIndex = -1
            MyBase.SelectedIndex = -1
     
        End Function
    #End Region
     
    #Region " Evenements "
        Protected Overrides Sub OnSelectedIndexChanged(ByVal e As System.EventArgs)
            If MyBase.SelectedIndex = m_InitialIndex Then
                MyBase.BackColor = CONSTColorForEqual
                RaiseEvent IndexModified(False)
            Else
                MyBase.BackColor = CONSTColorForModified
                RaiseEvent IndexModified(True)
            End If
        End Sub
    #End Region
     
    #Region " Code divers "
        Private Sub NewComboBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
     
            If e.KeyChar = Microsoft.VisualBasic.ChrW(32) Then
                m_InitialIndex = -1
                MyBase.SelectedIndex = -1
            End If
     
        End Sub
    #End Region
     
    End Class
    A l'execution, ca plante ICI (voir ci dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Dim itMyItem As BibControles.NewComboBox.clsItem
            itMyItem = ncbFarmResponsible.SelectedItem ' <<<<<< ICI
            lFarmResponsible = itMyItem.ItemData
    avec le motif suivant :
    Informations supplémentaires : Le cast spécifié n'est pas valide.
    Si quelqu'un peut m'aider à comprendfre ce qui se passe ...
    Merci

  2. #2
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    et si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim itMyItem As BibControles.NewComboBox.clsItem 
    itMyItem = Ctype(ncbFarmResponsible.SelectedItem, BibControles.NewComboBox.clsItem) 
    lFarmResponsible = itMyItem.ItemData
    qu'est-ce que cela donne ?
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  3. #3
    Membre du Club
    Profil pro
    csdcsdc
    Inscrit en
    Juin 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : csdcsdc

    Informations forums :
    Inscription : Juin 2004
    Messages : 83
    Points : 65
    Points
    65
    Par défaut OK !
    Et bien, ca marche beaucoup mieux .... merci encore.

    [Tag [Résolu] ajouté par freegreg]
    [Pensez-y, vous-même, la prochaine fois. Merci ]

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Pense au Tag Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur les formulaires hérités
    Par sylum dans le forum Windows Forms
    Réponses: 1
    Dernier message: 13/09/2010, 21h11
  2. Petit problème sur un comboBox
    Par Claude_Azoulai dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2010, 14h15
  3. [VB.Net] Problème sur (re)dessin d'une feuille
    Par tomnie dans le forum Windows Forms
    Réponses: 21
    Dernier message: 11/09/2006, 16h52
  4. [.net] Problème avec un combobox.
    Par adicor dans le forum MFC
    Réponses: 13
    Dernier message: 07/06/2006, 14h56
  5. [C#]Problème sur composant perso (Bouton Transparent)
    Par SLE dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/10/2005, 00h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo