On the OnKeyPress function. If users press any key, this can change and replace the text on comboBox. If the users press backspace or function key we don't do anything. See the below example .
Explore My Other Channel for More Cool and Valuable Insights
๐ Youtube Learn Tech Tips๐ Tiktok
๐ Facebook:CAutoCompletedComboBox.cs
// Developer: VแปLH / Zidane (huuvi168@gmail.com)
// Last Modified: 2016-07-01
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AutoCompletedDemo
{
public class CAutoCompleterComboBox: ComboBox
{
// bKey use when the special keys is pressed
// In this case, the replace will be cancel!
private bool bkey = false;
// confirm the special key is pressed or not?
protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e){
base.OnKeyPress(e);
if (e.KeyChar == (int)Keys.Escape)
{
// remote text
this.SelectedIndex = -1;
this.Text = "";
bkey = true;
}
else if (Char.IsControl(e.KeyChar))
bkey = true;
else
bkey = false;
}
// remove the text
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
if (this.Text != "" && !bkey) {
// Find the same Item.
string matchText = this.Text;
int match = this.FindString(matchText);
// If found insert it
if (match != -1)
{
this.SelectedIndex = match;
// choose (test had just insert it)
// that can be replace if users type
this.SelectionStart = matchText.Length;
this.SelectionLength = this.Text.Length - this.SelectionStart;
}
}
}
}
}
FrmMain.cs
// Developer: VแปLH / Zidane (huuvi168@gmail.com)
// Last Modified: 2016-07-01
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AutoCompletedDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
CAutoCompleterComboBox combo = new CAutoCompleterComboBox();
combo.Location = new Point(10, 10);
combo.Width = 200;
this.Controls.Add(combo);
string[] arItems = new string[] {
"Money",
"CSharp",
"Dot net",
"C++",
"PHP",
"Lua",
"Javascript",
"Java",
"Learn Tech Tips",
"Zidane",
"huuvi168@gmail.com",
"facebook"
};
for (int i=0; i< arItems.Length; i++)
{
combo.Items.Add(arItems[i].ToString());
}
}
}
}
Thank you for reading this post. I hope you found it helpful and easy to follow. If you have any feedback or questions about
How to Implement AutoComplete for a ComboBox in C# ,
please share them in the comments below. I would love to hear from you and discuss this topic further
✋✋✋✋
Webzone Tech Tips, all things Tech Tips for web development
- I am Zidane, See you next time soon ✋✋✋✋