When using the combobox. Sometime you need the combobox with auto completed. So you can create any combox with auto-complete feature by using KeyPress and TextChanged or create any class override two above function
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 .
Have any question, leave your comment, we can discuss about it!
Have a nice day!
Zidane
http://learn-tech-tips.blogspot.com/
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 .
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());
}
}
}
}
Have any question, leave your comment, we can discuss about it!
Have a nice day!
Zidane
http://learn-tech-tips.blogspot.com/
0 comments:
Post a Comment