ComboBox denetimi öğeleri ilk karakteri yazarken seçili

Makale çevirileri Makale çevirileri
Makale numarası: 814362 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

DropDownStyle özelliği ComboBox denetiminin DropDownList için ayarlayın ve sonra ComboBox çalışma zamanı sırasında maddenin ilk karakteri yazın. ComboBox seçtiğiniz madde, yazdığınız karakter eşleşmiyor. ComboBox seçtiğiniz madde, yazdığınız son karakter temel alır. ComboBoxro yazdığınızda ComboBox öğeler kırmızıoak ve Gül, örneğin, odak oakGül yerine açıktır.

Neden

Bu sorun, ComboBox arama bir karakter yerine, tam bir karakter kümesine bağlı olduğu için oluşur.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, ComboBox yazdığınız karakterleri içeren öğeleri arar kodu ekleyin. Kodu ayrıca tüm karakterleri yakından eşleşen bir öğe seçmeniz gerekir. Arama metnini düzenli aralıklarla temizlemek için <a0></a0>, bir süreölçer denetimi kullanın. Bunu yapmak için şu adımları izleyin:
  1. Microsoft Visual Studio .NET veya Visual Studio 2005'te yeni bir Windows oluşturma Visual Basic .NET, Visual Basic 2005 veya Visual C# .NET kullanarak uygulama.

    Varsayılan olarak, Form1 oluşturulur.
  2. Araç kutusundan bir süreölçer Form1'e sürükleyin.
  3. Özellikler penceresinde etkin ayarlama özelliği true.
  4. Aşağıdaki ifadeyi kod <a1>değişken bildirisi</a1> bölümüne ekleyin:

    Visual Basic .NET veya Visual Basic 2005
    Dim searchstr As String
    Visual C# .NET
    string searchstr;
  5. Aşağıdaki kodu Form1 <a1>Yükle</a1> olayına ekleyin:

    Visual Basic .NET veya Visual Basic 2005
    'set the timer interval and start the timer
    Timer1.Interval = 1000
    Timer1.Start()
    Visual C# .NET
    //set the interval  and start the timer
    timer1.Interval =1000;
    timer1.Start();
  6. Aşağıdaki kodu Timer1 <a1>onay</a1> olayına ekleyin:

    Visual Basic .NET veya Visual Basic 2005
    'empty the string for every 1 seconds
    searchstr = ""
    Visual C# .NET
    //empty the string for every 1 seconds
    searchstr="";
  7. Aşağıdaki kodu ComboBox1 <a1>KeyUp</a1> olayı ekleyin:

    Visual Basic .NET veya Visual Basic 2005
          searchstr = searchstr & Chr(e.KeyValue)
          ' If the Search string is greater than 1 then use custom logic
          If searchstr.Length > 1 Then
             Dim index As Integer
             ' Search the Item that matches the string typed
             index = ComboBox1.FindString(searchstr)
             ' Select the Item in the Combo
             ComboBox1.SelectedIndex = index
          End If  
    Visual C# .NET
             searchstr = searchstr + Convert.ToChar(e.KeyCode);
             // If the Search string is greater than 1 then use custom logic
             if (searchstr.Length > 1)
             {
                int index;
                // Search the Item that matches the string typed
                index=comboBox1.FindString(searchstr);
                // Select the Item in the Combo
                comboBox1.SelectedIndex=index;
             }

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Microsoft Visual Studio .NET veya Visual Studio 2005'te yeni bir Windows oluşturma Visual Basic .NET, Visual Basic 2005 veya Visual C# .NET kullanarak uygulama.

    Varsayılan olarak, Form1 oluşturulur. Not Visual Basic 2005 kodunu değiştirmeniz gerekir. Windows Forms bir proje oluşturduğunuzda, varsayılan olarak, Visual Basic projesinin iki dosya oluşturur. Formun adı Form1 verilirse, formun temsil eden iki dosya Form1.vb ve Form1.Designer.vb olarak adlandırılır. Kodu, Form1.vb dosyasında yazın. Windows Forms Designer kod Form1.Designer.vb dosyaya yazar. Windows Forms Designer kısmi anahtar Form1 uygulamasının iki ayrı dosyaya bölmek için kullanır. Bu davranış, kodunuzu interspersed designer tarafından üretilen kod engeller.

    Yeni Visual Basic 2005 dil geliştirmeleri hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    Kısmi sınıfları ve Windows Forms Tasarımcısı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. Araç kutusundan bir ComboBox Form1'e sürükleyin.
  3. ComboBox1 ' ı sağ tıklatın ve sonra da Properties ' i tıklatın.
  4. Properties penceresinde DropDownStyle seçmek için tıklatın ve sonra da DropDownList için özelliğini ayarlayın.
  5. Özellikler penceresinde, öğeleri seçmek için tıklatın ve üç nokta düğmesini (...).
  6. Dize Collection Editor, kırmızıoak ve Gül farklı satırları yazın ve Tamam ' ı tıklatın.
  7. Hata Ayıkla) menüsünde, uygulamayı çalıştırmak için Başlat ' ı tıklatın.
  8. RoComboBox1 içinde yazın.

Referanslar

Daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

ComboBox.DropDownStyle özelliği
http://msdn2.microsoft.com/en-us/library/system.windows.forms.combobox.dropdownstyle(vs.71).aspx

Özellikler

Makale numarası: 814362 - Last Review: 11 Mayıs 2007 Cuma - Gözden geçirme: 2.8
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbvs2005swept kbvs2005applies kbctrl kbcontrol kbproperties kbdisplay kbwindowsforms kbcombobox kbprb KB814362 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:814362

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com