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 :

Accéder à une zone de texte dynamique


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut Accéder à une zone de texte dynamique
    Bonjour Tout le monde
    Je débute avec c# j'ai besoin de votre aide ,
    Moi j'ai cré un bouton et une zone de text dynamiquement avec c# sous visual studio 2008
    l'évènement click sur le bouton m'affiche un calendreir et la selection de date de calendrier sera afficher dans ma zone de texte cré dynamiquement .. mon problème ce que j'arrive pas à trouver la zone de texte voilà mon code :
    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.Xml;
    using System.Collections;
     
    namespace SilverlightApplication13
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
                ReturnDate(t, 30, 60);
            }
            public TextBox t;
     
     
            public void ReturnDate(TextBox t,double margin,double left)
            {
     
                t = new TextBox();
                t.Margin = new Thickness(margin);
                t.Width = 100;
                t.Name = "rim";
                t.SetValue(Canvas.LeftProperty, left);
                Button b = new Button();
                b.Width = 60;
                b.Height = 20;
                b.Content="ok";
                b.Margin = new Thickness(margin);
                b.SetValue(Canvas.LeftProperty, left + 130);
     
     
                b.Click+=new RoutedEventHandler(b_Click);
     
     
                LayoutRoot.Children.Add(t);
                LayoutRoot.Children.Add(b);
     
     
            }
            public void b_Click(object sender, EventArgs e)
            {
     
                Calendar c = new Calendar();
                c.SelectedDatesChanged+=new EventHandler<SelectionChangedEventArgs>(c_SelectedDatesChanged);
                c.Visibility = Visibility.Visible;
                LayoutRoot.Children.Add(c);
     
     
            }
            public void c_SelectedDatesChanged(object sender, EventArgs e)
            {
                TextBox t = (TextBox)sender;
                Calendar c = (Calendar)sender;
                t.Text = c.SelectedDates.ToString();
     
            }
     
        }
    }
    je veux que la date s'affiche dans la zone de texte t !!!
    pouvez vous m'aider SVP je serai trop reconnaissante ..
    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void c_SelectedDatesChanged(object sender, EventArgs e)
            {
                TextBox t = (TextBox)sender;
                Calendar c = (Calendar)sender;
                t.Text = c.SelectedDates.ToString();
     
            }
    sender ici est le contrôle qui a levé l'événement, en l'occurrence Calendar.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox t = (TextBox)sender;
    est donc null (on a un seul émetteur, ton code pourrait être juste s'il y avait une relation d'héritage entre calendar et textbox, mais ce n'est pas le cas).

    Comme ton t existe déjà dans le scope de ta classe, tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void c_SelectedDatesChanged(object sender, EventArgs e)
            {
                Calendar c = (Calendar)sender;
                t.Text = c.SelectedDates.ToString();
     
            }
    Voilà pour le problème. Par contre ton code présente quelques incohérences. Tu es en Silverlight, donc logiquement la TextBox est définie dans le XAML (le contenu de la méthode ReturnDate est donc défini en XAML), ce qui évitera des incohérences du type car t est déjà le nom de ton objet, et tu le renommes, je ne sais pas trop comment ça va se comporter.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut
    Merci pour la réponse
    je vais l'essayer
    non mon textbox t n'existe pas dans le code xaml c'est une zone de texte qui est cré dynamiquement et je veux modier sa propriété Text une fois une date selectionné dans le calendar

  4. #4
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut
    Malheureusement c pas marché , je veux que mon textbox dont le nom est "rim" contient la date selectionné donc le problème c comment je peu trouver ce textbox afin de pouvoir changer son continu???

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut
    Enfin j'ai trouvé ça Dieu Merci
    voilà comment on fait pour ceux qui cherche un truc pareil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    TextBox MonText = new TextBox();
    MonText.ID = "MonText";
    PlaceHolderAdminNews.Controls.Add(MonText);
     
    et dans l'autre fonction :
     
    TextBox MonText2 = (TextBox)FindControl("MonText");

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

Discussions similaires

  1. [XL-2002] Modifier la largeur d'une zone de texte dynamiquement
    Par DJ_972 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2011, 15h39
  2. Ajout d'une zone de texte dynamiqument (les unes en dessous des autres)
    Par beegees dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/04/2010, 01h54
  3. Réponses: 2
    Dernier message: 12/08/2009, 14h47
  4. Créer une zone de texte dynamique de taille donnée
    Par sovitec dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 18/06/2009, 10h39
  5. Réponses: 2
    Dernier message: 20/05/2009, 14h34

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