Wednesday, 15 August 2012

c# - WPF combobox auto highlighting on first letter input -


हाय, मैं एक ComboBox WPF में

 <कोड> & lt है; ComboBox एक्स: नाम = "Select_Food" Grid.ColumnSpan = "3" मार्जिन = "10" पाठ = "" IsEditable = "सही" ItemsSource = "{बाइंडिंग}" KeyUp = "Select_Food_KeyUp" IsTextSearchEnabled = "false" / & gt;   

मुझे डेटाबेस से विकल्प मिल रहा है, जबकि पाठ बॉक्स में उपयोगकर्ता प्रकार। वर्तमान में सब कुछ काम करता है लेकिन केवल एक समस्या यह है कि जब मैं पाठ बॉक्स में पहला अक्षर लिखता हूं, तो उस पत्र को स्वतः ही हाइलाइट किया जाता है, सूची में से कोई भी आइटम उस पत्र से शुरू होता है। इस वजह से, कोई और टाइपिंग पहले अक्षर को ओवरराइट करता है यह एक समस्या है। मैं इस प्रारंभिक हाइलाइट को कैसे रोकूं? मैं एक "google-search-like" कन्बोबाक्स प्राप्त करने की कोशिश कर रहा हूं

यह कोड है कृपया मदद करें।

  // इस समारोह टाइपिंग हर KeyUp स्ट्रोक निजी शून्य Select_Food_KeyUp (वस्तु प्रेषक, KeyEventArgs ई) पर कहा जाता है {try {SqlCeCommand आदेश = नए SqlCeCommand ( "भोजन से FOODITEM_RS का चयन करें जहां FOODITEM_RS की तरह @ फिटम ", यह कनेक्शन); आदेश। पैरामीटर। AddWithValue ("@ fitem", "%" + select_Food.Text + "%"); SqlCeDataAdapter da = नया SqlCeDataAdapter (कमांड); डाटासेट डीएस = नया डाटासेट (); thisConnection.Open (); दा। भरें (डीएस, "खाद्य"); Select_Food.ItemsSource = ds.Tables [0] .DefaultView; । Select_Food.DisplayMemberPath = ds.Tables [0] .Columns [ "FOODITEM_RS"] ToString (); } पकड़ (SqlCeException x) {संदेश बॉक्स। शो (x.ToString ()); } // ड्रॉप डाउन मेनू खोलें Select_Food.IsDropDownOpen = true; thisConnection.Close (); }    

यह है मैं इसे कैसे तय -

मेरे KeyUp ईवेंट हैंडलर मैं निम्नलिखित कोड जोड़ा -

  वर पाठ बॉक्स = (पाठ बॉक्स) cmbBox.Template.FindName ( "PART_EditableTextBox", cmbBox); अगर (पाठ बॉक्स! = नल और amp; पहले & amp; amp;; & amp; पहले & amp; amp;; & amp;; textbox.SelectionLength & gt; 0) {textbox.Select (textbox.SelectionLength, 0); _firstKey = false; }   

_firstKey एक ध्वज है I जोड़ा। इस तरह हाइलाइट केवल पहली बार एक बार रद्द हो जाता है जब यह इवेंट उठाया जाता है, जो कि जहां समस्या है

मैं कॉल चयन चयन से शुरू होता है ताकि मेरा कर्सर उस पाठ के अंत में बने रहे जो उपयोगकर्ता द्वारा दर्ज किए गए पाठ के अंत में रहे। चयन पास करने के लिए मैं पास 0 की लंबाई है।

No comments:

Post a Comment