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

Visual Studio Discussion :

Dans une WinForm, un tableLayoutPanel ?


Sujet :

Visual Studio

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 118
    Par défaut Dans une WinForm, un tableLayoutPanel ?
    Bonjour à vous;

    Sous VS, une petite application qui contient un "tableLayoutPanel" dans lequel j'ai logé 81 TextBox sur 9 lignes de 9 colonnes.

    Pour des besoins d'exploitation, je suis amené à "clicker" sur plusieurs TextBox ...

    Ma question: A présent, je me vois obliger de programmer l'évènement Click pour chaque TextBox. Genre pour ex TextBox 38: " private void TBA38_Click( object sender , EventArgs e) { ...} "

    D'autant que pour la moitié des textbox, j'ai la même programmation à faire. Donc faire du copier/coller pour 40 "évènements click", je trouve cela "routinier et fatiguant !".

    N'existe t-il pas une fonction lié à la tableLayoutPanel qui pourrait me retourner le numéro de TextBox sur lequel j'ai clické ? Une fonction liée à une ligne ou colonne du tableLayoutPanel ???

    J'ai regardé tous les "évènements" liés à cette table: ils ne se réfèrent pas à son contenu.

    Une autre solution plus "élégante" me conviendrait.

    Vous remerciant par avance de vos conseils ...... molo2003

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    vous pouvez abonner vos TextBox à l'événement Click :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                foreach (Control Crl in Tlp1.Controls)
                {
                    if (Crl is TextBox)
                    {
                        Crl.Click += Tbx_Click;
                    }
                }
    Ensuite vous pouvez gérer cet événement en fonction de la position des TextBox sur la Table : Doc Microsoft
    Pour lire les Cellpropriétés , Column, Row, ColumnSpan, et RowSpan au moment de l’exécution, utilisez les GetCellPositionméthodes , GetColumnGetRow, , GetColumnSpanet GetRowSpan .
    avec ce code par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            private void Tbx_Click(object? sender, EventArgs e)
            {
                if (sender is TextBox Tbx)
                {
                    int col = Tlp1.GetColumn(Tbx);
                    int row = Tlp1.GetRow(Tbx);
     
                    // Ici votre traitement
                    if (col == 2)
                    {
                      Tbx.ForeColor = Color.Red;  
                    }
                }
            }
    N.B. : Tlp1 étant votre tableLayoutPanel

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tu aurais aussi pu "poser" tous les textbox avec 6 lignes de code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 595
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 595
    Par défaut
    on peut aussi récupérer le nom de la textbox via la variable sender

Discussions similaires

  1. Exécuter un logiciel dans une WinForm
    Par molo2003 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/10/2008, 16h58
  2. Réponses: 2
    Dernier message: 30/04/2008, 16h29
  3. réalisation de courbes dans une winform avec vb.net
    Par terminal001 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/03/2008, 02h05
  4. VLC dans une Winform
    Par goddet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/12/2007, 16h36
  5. [C#]Edition de fichiers office dans une winform
    Par cyrille_naert dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/01/2007, 17h50

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