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

C# Discussion :

rafraichir un control en permanence


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 83
    Points
    83
    Par défaut rafraichir un control en permanence
    Bonjour,

    Je vais essayer d'expliquer ma demande de la façon la plus clair possible.

    J'ai crée deux UserControls et une WindowsForm.

    Sur un Usercontrol j'ai 2 TextBox, sur l'autre j'ai une PictureBox.

    Les 2 Usercontrols sont ajoutés à ma Form.

    Je souhaiterais lors d'un clic sur ma picture box insérer la position de la souris dans les 2 TextBox, un ou l'abscisse et l'autre pour l'ordonnée.

    Concernant le code pour récupérer la position je ne rencontre pas de problème mais je rencontre des problèmes de niveau d'accessibilité.

    Si quelqu'un peux m'aider.

    Merci.

  2. #2
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    bonsoir,

    regardes du côté du binding. Tu devrais y arriver facilement.


  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Mettre la propriété Modifiers des TextBox à Internal.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 032
    Points : 5 476
    Points
    5 476
    Par défaut
    Tu peux faire 2 proprietés sur ton usercontrol avec textbox (UCTextBox) dans le style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public stringTextAbscisse{
    get
     {
         return textboxAbscisse.Text;
     }
    set
     {
         textboxAbscisse.Text=value;
     }
    }
    Ensuite du coté du usercontrol avec picturebox, tu peux avoir une refférence vers le UCTextBox, et il ne te reste plus qu'à faire UCtextbox.TextAbscisse=....
    Tu peux utiliser également le Binding comme le dit sisqo60 mais tu vas devoir implémenter INotifyPropertyChanged pour que ca "bouge".

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 83
    Points
    83
    Par défaut
    Merci pour toutes vos réponses.

    Concernant le binding il me semblait que ça ne s'utiilsait uniquement que entre 2 controls, par exemple lorsqu'on sélectionne un pays dans une combobox il nous présente la liste de tous les départements dans une autre combobox.

    Quoi qu'il en soit, en mettant "internal" à mes TextBox je peux dans le usercontrol contenant la pictureBox faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    usercontrol monusercontrol = new usercontrol()
              monusercontrol.TextBox.Text() = "test";
    Seulement la compilation marche, avec des points d'arrêt je peux voir que la propriété Text à bien une valeur mais rien ne s'affiche.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 032
    Points : 5 476
    Points
    5 476
    Par défaut
    Tel que tu presentes le code c'est normal.

    Il faut que tu récupères l'instance du UC qui est placé dans ta form!
    Ici tu instancie un autre usercontrol, qui n'a rien a voir avec celui affiché

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 83
    Points
    83
    Par défaut
    C'est sûre... LOL

    En revanche je n'y arrive pas tout simplement parce que dans ma form ou sont mes 2 UserControls il faut que je crée une méthode "public static" pour qu'elle soit accessible dans le UserControl contenant la PictureBox.

    En gros dans le UserControl contenant ma PictureBox j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      private void ptb_plan_Click(object sender, EventArgs e) // récupération des coordonées après un click sur la Ptbx.
            {
    }
    dans ma Form j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     internal void SetCO(string X, string Y)
            {
                MonUserControl.MaTextBox.Text = X;
            }
    Si je mets la méthode SetCo en static il me surligne MaTextBox en me disant qu'il faut une référence d'objet et si ej met "This.MaTextBox" il me met également une erreur.

    Je continue de chercher.

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 83
    Points
    83
    Par défaut
    C'est bon j'y suis arrivé.

    Il fallait déclaré Le UserControl contenant les TextBox en "private static".
    Ensuite déclaré Les TextBox en "internal".


    Merci à tous.

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

Discussions similaires

  1. Focus "permanent" sur un control
    Par Julie!!! dans le forum IHM
    Réponses: 2
    Dernier message: 20/05/2008, 09h14
  2. Réponses: 7
    Dernier message: 15/12/2007, 12h12
  3. Comment Rafraichir le contenu de mes controles
    Par abir84 dans le forum Windows Forms
    Réponses: 16
    Dernier message: 16/05/2007, 15h12
  4. Rafraichir un controle RTF ??
    Par sentenza dans le forum Access
    Réponses: 5
    Dernier message: 12/06/2006, 16h34

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