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 :

pb avec c# et windows forms et touches clavier


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut pb avec c# et windows forms et touches clavier
    Bonjour, je suis malheureusement pour moi perdu, et j'espere que vous pourrez m'aider.

    Voila j'ai une forme dans laquelle j'ai une textbox1(txt1) et textbox2(txt2) et une listbox(lb1) et j'ai une checkBox(cb1).
    Et je veux que kan je rentre "momo" dans txt1 et que je tape Entrée je veux que momo s'insere dans lb1 et ke txt1 se vide ensuite que kan je mets mon curseur sur "momo" il me l'affiche dans txt2 ey ainsi de suite avec d'autres mots, pour avoir comme finalité, lorsque je coche cb1 alors la liste est triée.
    C'est exemple est issu d'une aide sur un site web.

    Sauf que pour moi quand je tape "momo" et entrée, "momo" ne s'insere pas dans lb1 c'est comme si la form n'etait pas sensible à Entrée, j'ai meme mis une messageBox pour verifier et elle n'est pas afficher.(je tourne en rond depuis 7h du matin dessus, merci d'avance pour l'aide!!!)voici les sources:

    Ca c'est Mainform.cs
    using System;
    using System.Data;
    using System.DirectoryServices;
    using Oracle.DataAccess;
    using System.ComponentModel;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;

    namespace test
    {
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public partial class MainForm
    {
    [STAThread]
    public static void Main(string[] args)
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MainForm());
    }

    public MainForm()
    {
    //
    // The InitializeComponent() call is required for Windows Forms designer support.
    //
    InitializeComponent();

    //
    // TODO: Add constructor code after the InitializeComponent() call.
    //
    }



    private void txt1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar == (char)13)
    {
    MessageBox.Show("good");
    lb1.Items.Add(txt1.Text); // transfert du contenu dans le listBox
    txt1.Text = ""; // vidage du textBox
    e.Handled = true; // indique que le caractère à été traité
    }
    }
    private void lb1_SelectedValueChanged(object sender, System.EventArgs e)
    {
    if (lb1.SelectedIndex != -1)
    txt2.Text = lb1.SelectedItem.ToString(); // transfer du contenu dans le textBox
    }
    void CheckBox1CheckedChanged(object sender, System.EventArgs e)
    {
    lb1.Sorted = cb1.Checked; // choix du tri des éléments du listBox

    }



    void ListBox1SelectedIndexChanged(object sender, System.EventArgs e)
    {

    }

    void TextBox1TextChanged(object sender, System.EventArgs e)
    {

    }

    void TextBox2TextChanged(object sender, System.EventArgs e)
    {

    }
    }
    }

    c'est mon MainForm.Designer.cs


    namespace test
    {
    partial class MainForm : System.Windows.Forms.Form
    {
    /// <summary>
    /// Designer variable used to keep track of non-visual components.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Disposes resources used by the form.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
    if (disposing) {
    if (components != null) {
    components.Dispose();
    }
    }
    base.Dispose(disposing);
    }

    /// <summary>
    /// This method is required for Windows Forms designer support.
    /// Do not change the method contents inside the source code editor. The Forms designer might
    /// not be able to load this method if it was changed manually.
    /// </summary>
    private void InitializeComponent()
    {
    this.lb1 = new System.Windows.Forms.ListBox();
    this.txt2 = new System.Windows.Forms.TextBox();
    this.label1 = new System.Windows.Forms.Label();
    this.cb1 = new System.Windows.Forms.CheckBox();
    this.txt1 = new System.Windows.Forms.TextBox();
    this.SuspendLayout();
    //
    // lb1
    //
    this.lb1.FormattingEnabled = true;
    this.lb1.Location = new System.Drawing.Point(295, 94);
    this.lb1.Name = "lb1";
    this.lb1.Size = new System.Drawing.Size(120, 186);
    this.lb1.TabIndex = 0;
    this.lb1.SelectedIndexChanged += new System.EventHandler(this.ListBox1SelectedIndexChanged);
    //
    // txt2
    //
    this.txt2.Location = new System.Drawing.Point(96, 184);
    this.txt2.Name = "txt2";
    this.txt2.Size = new System.Drawing.Size(100, 21);
    this.txt2.TabIndex = 1;
    this.txt2.TextChanged += new System.EventHandler(this.TextBox1TextChanged);
    //
    // label1
    //
    this.label1.Location = new System.Drawing.Point(68, 41);
    this.label1.Name = "label1";
    this.label1.Size = new System.Drawing.Size(174, 23);
    this.label1.TabIndex = 2;
    this.label1.Text = "Tapez du texte puis <Entrée>";
    //
    // cb1
    //
    this.cb1.Location = new System.Drawing.Point(295, 310);
    this.cb1.Name = "cb1";
    this.cb1.Size = new System.Drawing.Size(104, 24);
    this.cb1.TabIndex = 3;
    this.cb1.Text = "Liste triée";
    this.cb1.UseVisualStyleBackColor = true;
    this.cb1.CheckedChanged += new System.EventHandler(this.CheckBox1CheckedChanged);
    //
    // txt1
    //
    this.txt1.Location = new System.Drawing.Point(295, 43);
    this.txt1.Name = "txt1";
    this.txt1.Size = new System.Drawing.Size(100, 21);
    this.txt1.TabIndex = 4;
    this.txt1.TextChanged += new System.EventHandler(this.TextBox2TextChanged);
    //
    // MainForm
    //
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(749, 410);
    this.Controls.Add(this.txt1);
    this.Controls.Add(this.cb1);
    this.Controls.Add(this.label1);
    this.Controls.Add(this.txt2);
    this.Controls.Add(this.lb1);
    this.Name = "MainForm";
    this.Text = "test";
    this.ResumeLayout(false);
    this.PerformLayout();
    }
    private System.Windows.Forms.TextBox txt1;
    private System.Windows.Forms.TextBox txt2;
    private System.Windows.Forms.CheckBox cb1;
    private System.Windows.Forms.ListBox lb1;
    private System.Windows.Forms.Label label1;
    }
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    plutot que le KeyPress regarde du coté du KeyDown, tu auras plus de chance
    d'avoir le "retour chariot" dans KeyDown que KeyPress qui filtre justement
    ce type de touche

    Avec le KeyDown, ca devrait le faire

    The Monz, TOulouse

    Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                Trace.WriteLine(e.KeyCode);
                if (e.KeyCode == Keys.Return)
                {
                    if (textBox1.Text == "momo")
                    {
                        textBox2.Text = textBox1.Text;
                        textBox1.Text = string.Empty;
                    }
                }
            }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut suite
    Je te remercie pour ton aide, en fait j'ai oublié de dire que je developpe avec sharpDevelop et non visual studio.
    Mais en fait ce que je veux faire c'est que je rentre un mot dans la textbox1 et et quand je tape sur entrée ca envoie le mot dans la listbox ensuite, quand je mets le curseur sur le mot alors il me l'affiche dans la textbox2.

    Quand je crée un projet applications windows, le logiciel crée un fichier Mainform.cs et Mainform.designer.cs et un otre Mainform.resx et je fais le meme programme cela ne marche pas autant dans visual et sharpDevelop.
    Et quand je le fais sous visual studio dans un meme fichier avec toutes les fonctions initialize_composents(), main(), application.run cela fonctionne.
    Je me petes la tete dessus depuis 7h du mat et je suis desesperé car je voudrais utiliser la maniere avec plusieurs fichiers et non celle du seul fichier.

    SI vous voulez plus de precision dite le moi car la je desespere.

Discussions similaires

  1. utiliser une dll system32 avec un projet Windows Form
    Par gabouche dans le forum C++/CLI
    Réponses: 3
    Dernier message: 08/06/2012, 17h03
  2. Touche ESCAPE dans une Windows.Form
    Par tchoimars dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/02/2008, 12h04
  3. Réponses: 2
    Dernier message: 27/08/2007, 17h37
  4. Réponses: 3
    Dernier message: 27/07/2006, 10h17
  5. [C#] Look and Feel Office 2003 avec les Windows Forms
    Par vandamme dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/01/2006, 01h18

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