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 :

[C#] Problème bête avec le combo


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Billets dans le blog
    1
    Par défaut [C#] Problème bête avec le combo
    Bonjour à tous, j'ai un problème qui est énervant.

    J'ai un combobox qui contient la liste des clients.

    En sélectionnant un client, mon datagrid doit afficher la liste des commandes du client.

    Le problème est : au moment du chargement de la feuille, le combo est positionné au 1er client mais mon datagrid n'affiche pas les commandes du 1er client...

    Mon code est :

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
     
     
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Data.SqlClient;
     
    namespace DataView
    {
    	/// <summary>
    	/// Summary description for Form1.
    	/// </summary>
    	public class Form1 : System.Windows.Forms.Form
    	{
    		SqlConnection con=new SqlConnection("Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI");
    		DataSet dsOrders=new DataSet();
     
    		private System.Windows.Forms.ComboBox cboCustomers;
    		private System.Windows.Forms.DataGrid dgOrders;
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		private System.ComponentModel.Container components = null;
     
    		public Form1()
    		{
    			//
    			// Required for Windows Form Designer support
    			//
    			InitializeComponent();
     
    			//
    			// TODO: Add any constructor code after InitializeComponent call
    			//
    		}
     
    		/// <summary>
    		/// Clean up any resources being used.
    		/// </summary>
    		protected override void Dispose( bool disposing )
    		{
    			if( disposing )
    			{
    				if (components != null) 
    				{
    					components.Dispose();
    				}
    			}
    			base.Dispose( disposing );
    		}
     
    		#region Windows Form Designer generated code
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		private void InitializeComponent()
    		{
    			this.cboCustomers = new System.Windows.Forms.ComboBox();
    			this.dgOrders = new System.Windows.Forms.DataGrid();
    			((System.ComponentModel.ISupportInitialize)(this.dgOrders)).BeginInit();
    			this.SuspendLayout();
    			// 
    			// cboCustomers
    			// 
    			this.cboCustomers.Location = new System.Drawing.Point(48, 32);
    			this.cboCustomers.Name = "cboCustomers";
    			this.cboCustomers.Size = new System.Drawing.Size(168, 21);
    			this.cboCustomers.TabIndex = 0;
    			this.cboCustomers.Text = "comboBox1";
    			this.cboCustomers.SelectedIndexChanged += new System.EventHandler(this.cboCustomers_SelectedIndexChanged);
    			// 
    			// dgOrders
    			// 
    			this.dgOrders.DataMember = "";
    			this.dgOrders.HeaderForeColor = System.Drawing.SystemColors.ControlText;
    			this.dgOrders.Location = new System.Drawing.Point(48, 72);
    			this.dgOrders.Name = "dgOrders";
    			this.dgOrders.Size = new System.Drawing.Size(176, 112);
    			this.dgOrders.TabIndex = 1;
    			// 
    			// Form1
    			// 
    			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    			this.ClientSize = new System.Drawing.Size(292, 273);
    			this.Controls.Add(this.dgOrders);
    			this.Controls.Add(this.cboCustomers);
    			this.Name = "Form1";
    			this.Text = "Form1";
    			this.Load += new System.EventHandler(this.Form1_Load);
    			((System.ComponentModel.ISupportInitialize)(this.dgOrders)).EndInit();
    			this.ResumeLayout(false);
     
    		}
    		#endregion
     
    		/// <summary>
    		/// The main entry point for the application.
    		/// </summary>
    		[STAThread]
    		static void Main() 
    		{
    			Application.Run(new Form1());
    		}
     
    		private void cboCustomers_SelectedIndexChanged(object sender, System.EventArgs e)
    		{
    			System.Data.DataView dv=new System.Data.DataView(dsOrders.Tables["ORDERS"]);
    			dv.RowFilter="CustomerID='" + cboCustomers.SelectedValue + "'";
    			dgOrders.DataSource=dv;
     
    		}
     
    		private void Form1_Load(object sender, System.EventArgs e)
    		{
    			SqlCommand cmd=con.CreateCommand();
    			cmd.CommandType=CommandType.Text;
    			cmd.CommandText="SELECT * FROM ORDERS";
    			SqlDataAdapter daOrders=new SqlDataAdapter();
    			daOrders.SelectCommand=cmd;
    			daOrders.Fill(dsOrders,"Orders");
     
    			SqlCommand cmdCustomers=con.CreateCommand();
    			cmdCustomers.CommandType=CommandType.Text;
    			cmdCustomers.CommandText="SELECT CustomerID, CompanyName FROM Customers ORDER BY CompanyName";
     
    			DataSet dsCust=new DataSet();
    			SqlDataAdapter daCust=new SqlDataAdapter();
    			daCust.SelectCommand=cmdCustomers;
    			daCust.Fill(dsCust,"Customers");
     
    			cboCustomers.DataSource=dsCust.Tables["Customers"];
    			cboCustomers.DisplayMember="CompanyName";
    			cboCustomers.ValueMember="CustomerID";
     
     
     
    		}
    	}
    }
    Comment faire pour lancer l'évenement du combo (SelectedIndexChanged) au moment du chargement de la feuille?

    merci de conseiller sur la manière la plus propre...

    IRNBRU

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut
    Lu

    Ya peut-etre un truc con a faire au chargement de ta page, c'est d'exécuter ta requete pour remplir ta grid lors du form_load avec comme valeur pour ton client une sous-requete de sélection sur ta table clients.

    Suis pas un pro mais ca doit surement marcher... a pres c de la bidouille, c pas super propre et ca te fait réecrire t requetes sur le form_load...

    Bon courage.
    tcho

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 68
    Par défaut
    Et si tu mettais ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          public Form1()
          {
             InitializeComponent();
     
             System.EventArgs e = new EventArgs();
             this.cboCustomers_SelectedIndexChanged(this, e);
          }

  4. #4
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Un évènement est juste une methode avec un handles.
    Il suffit d'appeller la methode SelectedIndexChanged avec ses parametres dans le load.

  5. #5
    Membre éclairé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Billets dans le blog
    1
    Par défaut
    Merci à tous pour ces réponses, merci romain69005 cela fonctionne mais je préfère le code suivant plus propre et logique à mon avis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cboCustomers_SelectedIndexChanged(cboCustomers, e);
    Car dans le sender il faut passer l'objet responsable de cet évenement à savoir cboCustomers...



    IRNBRU

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

Discussions similaires

  1. problème avec les combos
    Par Lenalyon dans le forum WinDev
    Réponses: 7
    Dernier message: 08/01/2007, 15h46
  2. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20
  3. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 12h00
  4. Grille avec saisie & Combos lié
    Par J-P-B dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/06/2003, 11h08
  5. problème JSP avec JBuilder et Weblogic 7
    Par viny dans le forum JBuilder
    Réponses: 2
    Dernier message: 24/04/2003, 08h07

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