2016-03-27 8 views
0

Ich habe müde arbeiten an diesem Teil des Codes für 3 Tage und Suche im Internet bitte ich brauche Hilfe lernen \ wissen, wie Verwenden Sietextbox1textbox1 und verwenden Sie ihren Wert, um den Wert textbox2 und textbox3 unter Code einzustellen, den ich von der Suche im Internet und Sammlung zufällige Informationen aus verschiedenen Beiträgen erhielt.Willst du lernen, wie Wert von Textfeld zu verwenden, um den Wert eines anderen Textfelds (automatisch)

Nach dem, was ich, dass der schnellste Weg ...

public class PopulateProduct 
{ 
     public string ProductDesc { get; set; } 
     public decimal UnitPrice { get; set; } 
} 

Dictionary<string, PopulateProduct> dict = new Dictionary<string, PopulateProduct>(); 

public void load() 
{ 
     string connstr = "user id=user;password=pwd"; 
     string cmdtxt = @"select PRODUCT_ID,DESCRIPTION,UNIT_PRICE 
           from products"; 

     AutoCompleteStringCollection autocom = new AutoCompleteStringCollection(); 
     TB_PRODUCT_ID.AutoCompleteMode = AutoCompleteMode.Suggest; 
     TB_PRODUCT_ID.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     TB_PRODUCT_ID.AutoCompleteCustomSource = autocom; 

     using (OracleConnection conn = new OracleConnection(connstr)) 
     using (OracleCommand cmd = new OracleCommand(cmdtxt, conn)) 
     { 
      try 
      { 
       conn.Open(); 
       OracleDataReader dr = cmd.ExecuteReader(); 

       while (dr.Read()) 
       { 
        dict.Add((string)dr["PRODUCT_ID"], 
         new PopulateProduct() 
         { 
          ProductDesc = (string)dr["DESCRIPTION"], 
          UnitPrice = (decimal)dr["UNIT_PRICE"] 
         }); 
        autocom.Add(dr["PRODUCT_ID"].ToString()); 
       } 

      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message,"",MessageBoxButtons.OK,MessageBoxIcon.Error); 
      } 
     } 
} 

nun auf den textbox1 wo Ihre Vorschläge Oracle-Datenbank kein Vorschlag angezeigt werden soll erscheint und keine Daten zugeordnet sind textbox2 und textbox3

private void TB_PRODUCT_ID_TextChanged(object sender, EventArgs e) 
{ 
     if (dict.ContainsKey(TB_PRODUCT_ID.Text)) 
     { 
      TB_PRODUCTS_DESC.Text = dict[TB_PRODUCT_ID.Text].ProductDesc; 
      TB_UNIT_PRICE.Text = dict[TB_PRODUCT_ID.Text].UnitPrice.ToString(); 
     } 
} 
+0

Was ist das Problem genau? In welchem ​​Teil brauchst du Hilfe? –

+0

@RezaAghaei Bei Text änderte Ereignis, wie ich sagte, wenn der Text changiert der Vorschlag sollte entsprechend der Eingabe dann wenn ich das vale von textbox1 ich muss Wert für textbox2 und textbox3 zuweisen, aber das ist nicht passieren – samer

Antwort

0

Ich bin kein großer Fan von der Verwendung des TextChanged-Ereignisses insbesondere auf einem Autocomplete-Textfeld, um andere Aktionen auszulösen, da ich nie in der Lage gewesen, herauszufinden, wenn der automatisch vervollständigte Wert im Text angezeigt wird. Ich bevorzuge es, den Benutzer die Box vollständig verlassen zu lassen, wenn ich weiß, dass der Wert gewählt wurde. Auch wenn dies für Sie nicht funktioniert, versuchen Sie, Ihren Code in das Leave-Ereignis zu setzen und zu überprüfen, ob es funktioniert. Wenn dies der Fall ist, besteht Ihr Problem wahrscheinlich darin, dass TB_PRODUCT_ID.Text den automatisch verarbeiteten Wert nicht enthält.

Verwandte Themen