Csharp/C Sharp by API/System.Windows.Forms/ComboBox — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 12:10, 26 мая 2010
Содержание
ComboBox.AutoCompleteMode
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
private System.Windows.Forms.ruboBox lstColors;
public Form1() {
InitializeComponent();
string[] colorNames;
colorNames = System.Enum.GetNames(typeof(KnownColor));
lstColors.Items.AddRange(colorNames);
}
private void InitializeComponent()
{
this.lstColors = new System.Windows.Forms.ruboBox();
this.SuspendLayout();
this.lstColors.AutoCompleteMode = ((System.Windows.Forms.AutoCompleteMode)((System.Windows.Forms.AutoCompleteMode.Suggest | System.Windows.Forms.AutoCompleteMode.Append)));
this.lstColors.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.lstColors.FormattingEnabled = true;
this.lstColors.Location = new System.Drawing.Point(13, 13);
this.lstColors.Name = "lstColors";
this.lstColors.Size = new System.Drawing.Size(267, 21);
this.lstColors.TabIndex = 0;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(296, 82);
this.Controls.Add(this.lstColors);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "Form1";
this.Text = "AutoComplete";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
ComboBox.AutoCompleteSource
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
private System.Windows.Forms.ruboBox lstColors;
public Form1() {
InitializeComponent();
string[] colorNames;
colorNames = System.Enum.GetNames(typeof(KnownColor));
lstColors.Items.AddRange(colorNames);
}
private void InitializeComponent()
{
this.lstColors = new System.Windows.Forms.ruboBox();
this.SuspendLayout();
this.lstColors.AutoCompleteMode = ((System.Windows.Forms.AutoCompleteMode)((System.Windows.Forms.AutoCompleteMode.Suggest | System.Windows.Forms.AutoCompleteMode.Append)));
this.lstColors.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.lstColors.FormattingEnabled = true;
this.lstColors.Location = new System.Drawing.Point(13, 13);
this.lstColors.Name = "lstColors";
this.lstColors.Size = new System.Drawing.Size(267, 21);
this.lstColors.TabIndex = 0;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(296, 82);
this.Controls.Add(this.lstColors);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "Form1";
this.Text = "AutoComplete";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
ComboBox.DrawItem
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.ruboBox comboBox1 = new System.Windows.Forms.ruboBox();
private System.Windows.Forms.Label label1 = new System.Windows.Forms.Label();
private System.Windows.Forms.ruboBox comboBox2 = new System.Windows.Forms.ruboBox();
private System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
ArrayList colorArray = new ArrayList();
ArrayList fontArray = new ArrayList();
public Form1() {
this.SuspendLayout();
this.ruboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
this.ruboBox1.ItemHeight = 25;
this.ruboBox1.Location = new System.Drawing.Point(16, 40);
this.ruboBox1.Size = new System.Drawing.Size(264, 31);
this.ruboBox1.SelectedIndexChanged += new System.EventHandler(this.MyItemSelected);
this.ruboBox1.MeasureItem += new System.Windows.Forms.MeasureItemEventHandler(this.ruboBox1_MeasureItem);
this.ruboBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ruboBox1_DrawItem);
this.label1.Location = new System.Drawing.Point(16, 16);
this.label1.Size = new System.Drawing.Size(100, 16);
this.label1.Text = "Font Combo Box";
this.ruboBox2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.ruboBox2.DropDownStyle = System.Windows.Forms.ruboBoxStyle.DropDownList;
this.ruboBox2.ItemHeight = 20;
this.ruboBox2.Location = new System.Drawing.Point(16, 104);
this.ruboBox2.Size = new System.Drawing.Size(264, 26);
this.ruboBox2.SelectedIndexChanged += new System.EventHandler(this.MyItemSelected);
this.ruboBox2.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.ruboBox2_DrawItem);
this.label2.Location = new System.Drawing.Point(24, 80);
this.label2.Text = "Color Combo Box";
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(312, 157);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label2,
this.label1,
this.ruboBox1,
this.ruboBox2});
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
[STAThread]
static void Main() {
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e) {
colorArray.Add(new SolidBrush(Color.Yellow));
colorArray.Add(new SolidBrush(Color.Black));
colorArray.Add(new SolidBrush(Color.Azure));
colorArray.Add(new SolidBrush(Color.Firebrick));
colorArray.Add(new SolidBrush(Color.DarkMagenta));
comboBox2.Items.Add("A");
comboBox2.Items.Add("B");
comboBox2.Items.Add("C");
comboBox2.Items.Add("D");
comboBox2.Items.Add("E");
fontArray.Add(new Font("Ariel", 15, FontStyle.Bold));
fontArray.Add(new Font("Courier", 12, FontStyle.Italic));
fontArray.Add(new Font("Veranda", 14, FontStyle.Bold));
fontArray.Add(new Font("System", 10, FontStyle.Strikeout));
fontArray.Add(new Font("Century SchoolBook", 15, FontStyle.Underline));
comboBox1.Items.Add("W");
comboBox1.Items.Add("H");
comboBox1.Items.Add("P");
comboBox1.Items.Add("D");
comboBox1.Items.Add("L");
}
private void comboBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) {
Graphics g = e.Graphics;
Rectangle r = e.Bounds;
Font fn = null;
if (e.Index >= 0) {
fn = (Font)fontArray[e.Index];
string s = (string)comboBox1.Items[e.Index];
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black), 2), r);
if (e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect)) {
e.Graphics.FillRectangle(new SolidBrush(Color.White), r);
e.Graphics.DrawString(s, fn, new SolidBrush(Color.Black), r, sf);
e.DrawFocusRectangle();
} else {
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue), r);
e.Graphics.DrawString(s, fn, new SolidBrush(Color.Red), r, sf);
e.DrawFocusRectangle();
}
}
}
private void comboBox2_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) {
Graphics g = e.Graphics;
Rectangle r = e.Bounds;
if (e.Index >= 0) {
Rectangle rd = r;
rd.Width = 100;
Rectangle rt = r;
SolidBrush b = (SolidBrush)colorArray[e.Index];
g.FillRectangle(b, rd);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
Console.WriteLine(e.State.ToString());
e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black), 2), r);
if (e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect)) {
e.Graphics.FillRectangle(new SolidBrush(Color.White), r);
e.Graphics.DrawString(b.Color.Name, new Font("Ariel", 8, FontStyle.Bold), new SolidBrush(Color.Black), r, sf);
e.DrawFocusRectangle();
} else {
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue), r);
e.Graphics.DrawString(b.Color.Name, new Font("Veranda", 12, FontStyle.Bold), new SolidBrush(Color.Red), r, sf);
e.DrawFocusRectangle();
}
}
}
private void MyItemSelected(object sender, System.EventArgs e) {
ComboBox cb = null;
if (sender.Equals(comboBox1))
cb = comboBox1;
else
cb = comboBox2;
int x = cb.SelectedIndex;
if (sender.Equals(comboBox1)) {
Console.WriteLine("Item Selected is = " + (string)cb.Items[x]);
} else {
SolidBrush br = (SolidBrush)colorArray[x];
Console.WriteLine("Color Selected is = " + br.Color.Name);
}
}
private void comboBox1_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e) {
if (e.Index % 2 == 0) {
e.ItemHeight = 45;
e.ItemWidth = 20;
} else {
e.ItemHeight = 25;
e.ItemWidth = 10;
}
}
}
ComboBox.FormattingEnabled
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
private System.Windows.Forms.ruboBox lstColors;
public Form1() {
InitializeComponent();
string[] colorNames;
colorNames = System.Enum.GetNames(typeof(KnownColor));
lstColors.Items.AddRange(colorNames);
}
private void InitializeComponent()
{
this.lstColors = new System.Windows.Forms.ruboBox();
this.SuspendLayout();
this.lstColors.AutoCompleteMode = ((System.Windows.Forms.AutoCompleteMode)((System.Windows.Forms.AutoCompleteMode.Suggest | System.Windows.Forms.AutoCompleteMode.Append)));
this.lstColors.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.lstColors.FormattingEnabled = true;
this.lstColors.Location = new System.Drawing.Point(13, 13);
this.lstColors.Name = "lstColors";
this.lstColors.Size = new System.Drawing.Size(267, 21);
this.lstColors.TabIndex = 0;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(296, 82);
this.Controls.Add(this.lstColors);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "Form1";
this.Text = "AutoComplete";
this.ResumeLayout(false);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
ComboBox.Items
using System;
using System.Drawing;
using System.Windows.Forms;
public class Select : Form {
private Button draw = new Button();
private ComboBox color = new ComboBox();
public Select( ) {
draw.Text = "Draw";
color.Text = "Choose a color";
Size = new Size(500,250);
int w = 20;
draw.Location = new Point(20,30);
color.Location = new Point(w += 10 + color.Width, 30);
color.Items.Add("Red");
color.Items.Add("Green");
color.Items.Add("Blue");
Controls.Add(draw);
Controls.Add(color);
draw.Click += new EventHandler(Draw_Click);
}
protected void Draw_Click(Object sender, EventArgs e) {
if (color.SelectedItem.ToString() == "Red" )
Console.WriteLine("It is red.");
else if (color.SelectedItem.ToString() == "Green")
Console.WriteLine("It is green.");
else
Console.WriteLine("It is blue.");
}
static void Main() {
Application.Run(new Select());
}
}
ComboBox.Leave
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
public class ComboBoxes : Form
{
ComboBox cmb;
Button btnDisplay;
Button btnInsert;
Button btnSelect;
Label lblEdit;
TextBox txtDisplay;
Boolean boolChange = false;
Boolean boolProcessed = false;
public ComboBoxes()
{
Size = new Size(300,400);
this.Load += new EventHandler(this_Load);
cmb = new ComboBox();
cmb.Parent = this;
cmb.Location = new Point(10,10);
cmb.Size = new Size(ClientSize.Width / 2, Height - 200);
cmb.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
cmb.DropDownStyle = ComboBoxStyle.DropDown;
cmb.DropDownStyle = ComboBoxStyle.Simple;
cmb.DropDownWidth = (int)(cmb.Width * 1.5);
cmb.MaxDropDownItems = 12;
cmb.MaxLength = 20;
cmb.SelectionChangeCommitted += new EventHandler(cmb_SelectionChangeCommitted);
cmb.Leave += new EventHandler(cmb_Leave);
btnInsert = new Button();
btnInsert.Parent = this;
btnInsert.Text = "&Insert Item";
btnInsert.Size = new Size((int)(Font.Height * .75) * btnInsert.Text.Length, cmb.Height);
btnInsert.Location = new Point(cmb.Right + 10, cmb.Top);
btnInsert.Click += new System.EventHandler(btnInsert_Click);
lblEdit = new Label();
lblEdit.Parent = this;
lblEdit.BorderStyle = BorderStyle.Fixed3D;
lblEdit.Location = new Point(cmb.Left, cmb.Bottom + 10);
lblEdit.BackColor = Color.LightGray;
lblEdit.Text = "";
lblEdit.Size = new Size(cmb.DropDownWidth, Font.Height * 2);
btnDisplay = new Button();
btnDisplay.Parent = this;
btnDisplay.Text = "&Display Items";
btnDisplay.Size = new Size((int)(Font.Height * .75) * btnDisplay.Text.Length, cmb.Height);
btnDisplay.Location = new Point(lblEdit.Left, lblEdit.Bottom + 10);
btnDisplay.Click += new System.EventHandler(btnDisplay_Click);
txtDisplay = new TextBox();
txtDisplay.Parent = this;
txtDisplay.Location = new Point(btnDisplay.Left, btnDisplay.Bottom + 10);
txtDisplay.Multiline = true;
txtDisplay.ReadOnly = true;
txtDisplay.BackColor = Color.LightGray;
txtDisplay.ScrollBars = ScrollBars.Vertical;
txtDisplay.Text = "";
txtDisplay.Size = new Size(cmb.DropDownWidth, 200);
btnSelect = new Button();
btnSelect.Parent = this;
btnSelect.Text = "&Select 4";
btnSelect.Size = new Size((int)(Font.Height * .75) * btnSelect.Text.Length, cmb.Height);
btnSelect.Location = new Point(btnDisplay.Right + 10, btnDisplay.Top);
btnSelect.Click += new System.EventHandler(btnSelect_Click);
cmb.Items.Add("A");
cmb.Items.Add("B");
cmb.Items.Add("C");
cmb.Items.Add("D");
cmb.Items.Add("E");
cmb.SelectedIndex = 0;
}
static void Main()
{
Application.Run(new ComboBoxes());
}
private void this_Load(object sender, EventArgs e)
{
cmb.TextChanged += new EventHandler(cmb_TextChanged);
cmb.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
}
private void cmb_TextChanged(object sender, EventArgs e)
{
if (!boolProcessed)
lblEdit.Text = cmb.Text;
boolChange = true;
}
private void cmb_SelectedIndexChanged(object sender, EventArgs e)
{
if (boolChange)
{
boolChange = false;
boolProcessed = false;
}
}
private void cmb_SelectionChangeCommitted(object sender, EventArgs e)
{
if (boolChange)
ProcessChange();
}
private void cmb_Leave(object sender, EventArgs e)
{
if (boolChange)
{
ProcessChange();
boolChange = false;
}
}
private void ProcessChange()
{
lblEdit.Text = "Edited: " + cmb.Text;
boolProcessed = true;
}
private void btnDisplay_Click(object sender, EventArgs e)
{
string str = DateTime.Now.ToString() + "\r\n";
foreach (object item in cmb.Items)
{
str += item.ToString() + "\r\n";
}
txtDisplay.Text = str;
}
private void btnSelect_Click(object sender, EventArgs e)
{
cmb.Select(1,2);
}
private void btnInsert_Click(object sender, EventArgs e)
{
if (cmb.FindStringExact(cmb.Text) != -1)
{
MessageBox.Show(""" + cmb.Text + "" already exists in the list.\r\n" +
"Will not be added again.",
"Already Exists!");
}
else if (cmb.Text == "")
{
MessageBox.Show("There is nothing to add.","Nothing There");
}
else
{
cmb.Items.Add(cmb.Text);
}
}
}
ComboBox.SelectedIndexChanged
using System;
using System.Drawing;
using System.Windows.Forms;
public class Test : Form {
private RadioButton square = new RadioButton();
private RadioButton circle = new RadioButton();
private ComboBox color = new ComboBox();
private Color c = Color.Red;
public Test( ) {
Text = "Select Item";
square.Text = "Square";
circle.Text = "Circle";
color.Text = "Choose a color";
Size = new Size(400,250);
int w = 20;
square.Location = new Point(w, 30);
circle.Location = new Point(w += 10 + square.Width, 30);
color.Location = new Point(w += 10 + circle.Width, 30);
color.Items.Add("Red");
color.Items.Add("Green");
color.Items.Add("Blue");
Controls.Add(square);
Controls.Add(circle);
Controls.Add(color);
square.CheckedChanged += new EventHandler(Checked_Changed);
circle.CheckedChanged += new EventHandler(Checked_Changed);
color.SelectedIndexChanged += new EventHandler(Selected_Index);
}
protected override void OnPaint(PaintEventArgs e){
Graphics g = e.Graphics;
Brush brush = new SolidBrush(c);
if (square.Checked)
g.FillRectangle(brush,100,100,100,100);
else
g.FillEllipse(brush,100,100,100,100);
base.OnPaint( e );
}
protected void Selected_Index(Object sender, EventArgs e){
if (color.SelectedItem.ToString() == "Red" )
c = Color.Red;
else if (color.SelectedItem.ToString() == "Green")
c = Color.Green;
else
c = Color.Blue;
Invalidate();
}
protected void Checked_Changed(Object sender, EventArgs e) {
Invalidate();
}
static void Main() {
Application.Run(new Test());
}
}
ComboBox.SelectedItem
using System;
using System.Drawing;
using System.Windows.Forms;
public class Select : Form {
private Button draw = new Button();
private ComboBox color = new ComboBox();
public Select( ) {
draw.Text = "Draw";
color.Text = "Choose a color";
Size = new Size(500,250);
int w = 20;
draw.Location = new Point(20,30);
color.Location = new Point(w += 10 + color.Width, 30);
color.Items.Add("Red");
color.Items.Add("Green");
color.Items.Add("Blue");
Controls.Add(draw);
Controls.Add(color);
draw.Click += new EventHandler(Draw_Click);
}
protected void Draw_Click(Object sender, EventArgs e) {
if (color.SelectedItem.ToString() == "Red" )
Console.WriteLine("It is red.");
else if (color.SelectedItem.ToString() == "Green")
Console.WriteLine("It is green.");
else
Console.WriteLine("It is blue.");
}
static void Main() {
Application.Run(new Select());
}
}
ComboBox.SelectionChangeCommitted
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
public class ComboBoxes : Form
{
ComboBox cmb;
Button btnDisplay;
Button btnInsert;
Button btnSelect;
Label lblEdit;
TextBox txtDisplay;
Boolean boolChange = false;
Boolean boolProcessed = false;
public ComboBoxes()
{
Size = new Size(300,400);
this.Load += new EventHandler(this_Load);
cmb = new ComboBox();
cmb.Parent = this;
cmb.Location = new Point(10,10);
cmb.Size = new Size(ClientSize.Width / 2, Height - 200);
cmb.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
cmb.DropDownStyle = ComboBoxStyle.DropDown;
cmb.DropDownStyle = ComboBoxStyle.Simple;
cmb.DropDownWidth = (int)(cmb.Width * 1.5);
cmb.MaxDropDownItems = 12;
cmb.MaxLength = 20;
cmb.SelectionChangeCommitted += new EventHandler(cmb_SelectionChangeCommitted);
cmb.Leave += new EventHandler(cmb_Leave);
btnInsert = new Button();
btnInsert.Parent = this;
btnInsert.Text = "&Insert Item";
btnInsert.Size = new Size((int)(Font.Height * .75) * btnInsert.Text.Length, cmb.Height);
btnInsert.Location = new Point(cmb.Right + 10, cmb.Top);
btnInsert.Click += new System.EventHandler(btnInsert_Click);
lblEdit = new Label();
lblEdit.Parent = this;
lblEdit.BorderStyle = BorderStyle.Fixed3D;
lblEdit.Location = new Point(cmb.Left, cmb.Bottom + 10);
lblEdit.BackColor = Color.LightGray;
lblEdit.Text = "";
lblEdit.Size = new Size(cmb.DropDownWidth, Font.Height * 2);
btnDisplay = new Button();
btnDisplay.Parent = this;
btnDisplay.Text = "&Display Items";
btnDisplay.Size = new Size((int)(Font.Height * .75) * btnDisplay.Text.Length, cmb.Height);
btnDisplay.Location = new Point(lblEdit.Left, lblEdit.Bottom + 10);
btnDisplay.Click += new System.EventHandler(btnDisplay_Click);
txtDisplay = new TextBox();
txtDisplay.Parent = this;
txtDisplay.Location = new Point(btnDisplay.Left, btnDisplay.Bottom + 10);
txtDisplay.Multiline = true;
txtDisplay.ReadOnly = true;
txtDisplay.BackColor = Color.LightGray;
txtDisplay.ScrollBars = ScrollBars.Vertical;
txtDisplay.Text = "";
txtDisplay.Size = new Size(cmb.DropDownWidth, 200);
btnSelect = new Button();
btnSelect.Parent = this;
btnSelect.Text = "&Select 4";
btnSelect.Size = new Size((int)(Font.Height * .75) * btnSelect.Text.Length, cmb.Height);
btnSelect.Location = new Point(btnDisplay.Right + 10, btnDisplay.Top);
btnSelect.Click += new System.EventHandler(btnSelect_Click);
cmb.Items.Add("A");
cmb.Items.Add("B");
cmb.Items.Add("C");
cmb.Items.Add("D");
cmb.Items.Add("E");
cmb.SelectedIndex = 0;
}
static void Main()
{
Application.Run(new ComboBoxes());
}
private void this_Load(object sender, EventArgs e)
{
cmb.TextChanged += new EventHandler(cmb_TextChanged);
cmb.SelectedIndexChanged += new EventHandler(cmb_SelectedIndexChanged);
}
private void cmb_TextChanged(object sender, EventArgs e)
{
if (!boolProcessed)
lblEdit.Text = cmb.Text;
boolChange = true;
}
private void cmb_SelectedIndexChanged(object sender, EventArgs e)
{
if (boolChange)
{
boolChange = false;
boolProcessed = false;
}
}
private void cmb_SelectionChangeCommitted(object sender, EventArgs e)
{
if (boolChange)
ProcessChange();
}
private void cmb_Leave(object sender, EventArgs e)
{
if (boolChange)
{
ProcessChange();
boolChange = false;
}
}
private void ProcessChange()
{
lblEdit.Text = "Edited: " + cmb.Text;
boolProcessed = true;
}
private void btnDisplay_Click(object sender, EventArgs e)
{
string str = DateTime.Now.ToString() + "\r\n";
foreach (object item in cmb.Items)
{
str += item.ToString() + "\r\n";
}
txtDisplay.Text = str;
}
private void btnSelect_Click(object sender, EventArgs e)
{
cmb.Select(1,2);
}
private void btnInsert_Click(object sender, EventArgs e)
{
if (cmb.FindStringExact(cmb.Text) != -1)
{
MessageBox.Show(""" + cmb.Text + "" already exists in the list.\r\n" +
"Will not be added again.",
"Already Exists!");
}
else if (cmb.Text == "")
{
MessageBox.Show("There is nothing to add.","Nothing There");
}
else
{
cmb.Items.Add(cmb.Text);
}
}
}
extends ComboBox
/*
Revised from cdoe
Visual C# 2005 Recipes A Problem-Solution Approach
# By Allen Jones
Matthew MacDonald
Rakesh Rajan
# ISBN: 1590595890
# ISBN-13: 9781590595893
# 592 pp.
# Published: Jan 2006
*/
using System;
using System.IO;
using System.Drawing;
using System.Windows.Forms;
public partial class ComboBoxHolder : Form
{
public ComboBoxHolder()
{
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Name = "ComboBoxHolder";
this.Text = "ComboBoxHolder";
this.ResumeLayout(false);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
AutoCompleteComboBox combo = new AutoCompleteComboBox();
combo.Location = new Point(10, 10);
this.Controls.Add(combo);
combo.Items.Add("word");
combo.Items.Add("world");
combo.Items.Add("wording");
combo.Items.Add("worse");
}
[STAThread]
public static void Main(string[] args)
{
Application.Run(new ComboBoxHolder());
}
}
public class AutoCompleteComboBox : ComboBox
{
private bool controlKey = false;
protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
base.OnKeyPress(e);
if (e.KeyChar == (int)Keys.Escape)
{
this.SelectedIndex = -1;
this.Text = "";
controlKey = true;
} else if (Char.IsControl(e.KeyChar)) {
controlKey = true;
} else {
controlKey = false;
}
}
protected override void OnTextChanged(System.EventArgs e)
{
base.OnTextChanged(e);
if (this.Text != "" && !controlKey)
{
string matchText = this.Text;
int match = this.FindString(matchText);
if (match != -1)
{
this.SelectedIndex = match;
this.SelectionStart = matchText.Length;
this.SelectionLength = this.Text.Length - this.SelectionStart;
}
}
}
}