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

 .NET Discussion :

TextBox personnalisé et problèmes d'affichage


Sujet :

.NET

  1. #1
    Membre averti

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Points : 310
    Points
    310
    Par défaut TextBox personnalisé et problèmes d'affichage
    Bonjour à tous et toutes,

    Dans le cadre d'un projet de gestionnaire d'une base de données photos, j'ai décidé de créer un contrôle personnalisé assez simple dans le sens où il s'agit d'une bête TextBox à laquelle j'ajoute deux petites choses :

    1 / Une autocompletion sur une liste de, par exemples, photographes.

    2 / Une propriété qui permet de récupèrer un objet photographe en partant du text de la textbox.

    Et ça marche à merveille, vraiment je ne m'en lasse pas.

    Cependant, j'ai un petit souci. L'application sera utilisée par plusieurs personnes à la fois et la liste des photographes (stockée en base SQL) risque d'être modifiée à chaque instant. J'ai donc décidé que sur l'événement Enter (lorsqu'on prend le focus) de la textbox, la source d'autocompletion se regénère, question d'avoir la version la plus à jour de la liste.

    Là encore, ça fonctionne très bien sauf que lorsque la textbox prend le focus, elle "clignote" le temps du remplissage de la liste, un effet visuel fort désagréable pour lequel je ne trouve pas de solution...

    Si vous en aviez une à me proposer, je vous en serai fort reconnaissant.

    D'avance merci.

    PS : Si vous avez quelques secondes supplémentaires à m'accorder, je me pose une question : Pour le type de contrôle que je viens de décrire, est-il mieux de créer un UserControl intégrant une textbox ou un composant hérité de textbox ? Et pourquoi ?

  2. #2
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    elle "clignote" le temps du remplissage de la liste, un effet visuel fort désagréable pour lequel je ne trouve pas de solution
    Essaie avec la méthode Control.SuspendLayout

    ++

  3. #3
    Membre averti

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Points : 310
    Points
    310
    Par défaut
    Merci pour l'idée.

    Après avoir lu le MSDN sur les suspendlayout et resumelayout, j'étais convaincu que ça réglerait le problème mais en fait, pas du tout.

    J'ai mis le suspend en début de méthode de remplissage et le resume à la fin, j'ai essayé sur le textbox puis sur le contrôle lui même, puis les deux en même temps mais rien n'y fait, j'ai toujours ce maudit clignotement...

    J'ai remarqué que ce souci de clignotement ne se produisait qu'à partir de la 2è fois où on prend le focus, la première fois, c'est presque parfait.

    Voici ce que j'ai mis dans l'événement Textbox.Enter :

    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
     
    Private Sub TextBoxPh_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxPh.Enter
            Me.SuspendLayout()
            ' une liste d'objets photographes qui se remplit via une procédure stockée
            Me._listePhotographes = BDD.GetPhotographes
            If Me._listePhotographes IsNot Nothing Then
                ' SourcePhotographes est une AutoCompleteStringCollection
                Me.SourcePhotographes.Clear()
                For Each totograf As Photographe In Me._listePhotographes
                    Me.SourcePhotographes.Add(totograf.NomComplet)
                Next
                ' SetSource : méthode qui relie la source d'autocomplétion au contrôle
                SetSource(Me.SourcePhotographes, Me.TextBoxPh)
            End If
            Me.ResumeLayout()
        End Sub

Discussions similaires

  1. GridView+TextBox Editable+Bind=problème d'affichage
    Par Bindy dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 12/03/2009, 12h16
  2. Problème d'affichage personnalisé de données d'une base
    Par dark&wise dans le forum Struts 1
    Réponses: 12
    Dernier message: 05/09/2007, 11h11
  3. [C#]Problème d'affichage de données dans ma textbox
    Par brazilia28 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/04/2007, 19h46
  4. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/02/2006, 12h09
  5. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/02/2006, 11h36

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