<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FComponents%2FComboBox</id>
		<title>Csharp/C Sharp/Components/ComboBox - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FComponents%2FComboBox"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Components/ComboBox&amp;action=history"/>
		<updated>2026-04-29T15:10:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Components/ComboBox&amp;diff=350&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Components/ComboBox&amp;diff=350&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Components/ComboBox&amp;diff=351&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Components/ComboBox&amp;diff=351&amp;oldid=prev"/>
				<updated>2010-05-26T11:38:10Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Auto Complete ComboBox==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
  using System;&lt;br /&gt;
  using System.Drawing;&lt;br /&gt;
  using System.Collections;&lt;br /&gt;
  using System.ruponentModel;&lt;br /&gt;
  using System.Windows.Forms;&lt;br /&gt;
  using System.Data;&lt;br /&gt;
  public class Form1 : System.Windows.Forms.Form&lt;br /&gt;
  {&lt;br /&gt;
    private AutoCompleteComboBox combo; &lt;br /&gt;
    public Form1()&lt;br /&gt;
    {&lt;br /&gt;
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);&lt;br /&gt;
      this.ClientSize = new System.Drawing.Size(292, 273);&lt;br /&gt;
      combo = new AutoCompleteComboBox();&lt;br /&gt;
      combo.Location = new System.Drawing.Point(64, 32);&lt;br /&gt;
      combo.Size = new System.Drawing.Size(150, 20);&lt;br /&gt;
            combo.Items.Add(&amp;quot;Aaaaaa&amp;quot;);&lt;br /&gt;
            combo.Items.Add(&amp;quot;Bbbbbbbbb&amp;quot;);&lt;br /&gt;
            combo.Items.Add(&amp;quot;Ccccccccccc&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      Controls.Add(combo);&lt;br /&gt;
      CenterToScreen();&lt;br /&gt;
    }&lt;br /&gt;
    static void Main() &lt;br /&gt;
    {&lt;br /&gt;
      Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
    &lt;br /&gt;
    public class AutoCompleteComboBox : System.Windows.Forms.ruboBox&lt;br /&gt;
    {&lt;br /&gt;
        public event System.ruponentModel.CancelEventHandler NotInList;&lt;br /&gt;
        private bool strict = true;&lt;br /&gt;
        private bool isEditing = false;&lt;br /&gt;
        public AutoCompleteComboBox() : base() {&lt;br /&gt;
        }&lt;br /&gt;
        public bool Strict&lt;br /&gt;
        {&lt;br /&gt;
            get { return strict; }&lt;br /&gt;
            set { strict = value; }&lt;br /&gt;
        }&lt;br /&gt;
        protected virtual void OnNotInList(System.ruponentModel.CancelEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (NotInList != null)&lt;br /&gt;
            {&lt;br /&gt;
                NotInList(this, e);&lt;br /&gt;
            }&lt;br /&gt;
        }   &lt;br /&gt;
        protected override void OnTextChanged(System.EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (isEditing)&lt;br /&gt;
            {&lt;br /&gt;
                string input = Text;&lt;br /&gt;
                int index = this.FindString(input);&lt;br /&gt;
                if (index &amp;gt;= 0)&lt;br /&gt;
                {&lt;br /&gt;
                    isEditing = false;&lt;br /&gt;
                    SelectedIndex = index;&lt;br /&gt;
                    isEditing = true;&lt;br /&gt;
                    Select(input.Length, Text.Length);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            base.OnTextChanged(e);&lt;br /&gt;
        }&lt;br /&gt;
        protected override void OnValidating(System.ruponentModel.CancelEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            if (this.Strict)&lt;br /&gt;
            {&lt;br /&gt;
                int pos = this.FindStringExact(this.Text);&lt;br /&gt;
        &lt;br /&gt;
                if (pos == -1)&lt;br /&gt;
                {&lt;br /&gt;
                    OnNotInList(e);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    this.SelectedIndex = pos;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            base.OnValidating(e);&lt;br /&gt;
        }&lt;br /&gt;
        protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            isEditing = (e.KeyCode != Keys.Back &amp;amp;&amp;amp; e.KeyCode != Keys.Delete);&lt;br /&gt;
            base.OnKeyDown(e);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Buildin AutoCompleteMode for ComboBox==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
public class Form1 : Form&lt;br /&gt;
{&lt;br /&gt;
    private System.Windows.Forms.ruboBox lstColors;&lt;br /&gt;
  public Form1() {&lt;br /&gt;
        InitializeComponent();&lt;br /&gt;
        string[] colorNames;&lt;br /&gt;
        colorNames = System.Enum.GetNames(typeof(KnownColor));&lt;br /&gt;
        lstColors.Items.AddRange(colorNames);&lt;br /&gt;
  }&lt;br /&gt;
    private void InitializeComponent()&lt;br /&gt;
    {&lt;br /&gt;
        this.lstColors = new System.Windows.Forms.ruboBox();&lt;br /&gt;
        this.SuspendLayout();&lt;br /&gt;
        this.lstColors.AutoCompleteMode = ((System.Windows.Forms.AutoCompleteMode)((System.Windows.Forms.AutoCompleteMode.Suggest | System.Windows.Forms.AutoCompleteMode.Append)));&lt;br /&gt;
        this.lstColors.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;&lt;br /&gt;
        this.lstColors.FormattingEnabled = true;&lt;br /&gt;
        this.lstColors.Location = new System.Drawing.Point(13, 13);&lt;br /&gt;
        this.lstColors.Name = &amp;quot;lstColors&amp;quot;;&lt;br /&gt;
        this.lstColors.Size = new System.Drawing.Size(267, 21);&lt;br /&gt;
        this.lstColors.TabIndex = 0;&lt;br /&gt;
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);&lt;br /&gt;
        this.ClientSize = new System.Drawing.Size(296, 82);&lt;br /&gt;
        this.Controls.Add(this.lstColors);&lt;br /&gt;
        this.Font = new System.Drawing.Font(&amp;quot;Tahoma&amp;quot;, 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));&lt;br /&gt;
        this.Name = &amp;quot;Form1&amp;quot;;&lt;br /&gt;
        this.Text = &amp;quot;AutoComplete&amp;quot;;&lt;br /&gt;
        this.ResumeLayout(false);&lt;br /&gt;
    }&lt;br /&gt;
  [STAThread]&lt;br /&gt;
  static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    Application.EnableVisualStyles();&lt;br /&gt;
    Application.Run(new Form1());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use an Autocomplete Combo Box==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
public class AutoCompleteComboBoxTest : System.Windows.Forms.Form {&lt;br /&gt;
   public AutoCompleteComboBoxTest(){&lt;br /&gt;
        AutoCompleteComboBox combo = new AutoCompleteComboBox();&lt;br /&gt;
        combo.Location = new Point(10,10);&lt;br /&gt;
        this.Controls.Add(combo);&lt;br /&gt;
        combo.Items.Add(&amp;quot;Aaaaaa&amp;quot;);&lt;br /&gt;
        combo.Items.Add(&amp;quot;Bbbbbbbbb&amp;quot;);&lt;br /&gt;
        combo.Items.Add(&amp;quot;Ccccccccccc&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
   public static void Main(){&lt;br /&gt;
       Application.Run(new AutoCompleteComboBoxTest());&lt;br /&gt;
   } &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class AutoCompleteComboBox : ComboBox {&lt;br /&gt;
    private bool controlKey = false;&lt;br /&gt;
    protected override void OnKeyPress( System.Windows.Forms.KeyPressEventArgs e) {&lt;br /&gt;
        base.OnKeyPress(e);&lt;br /&gt;
        if (e.KeyChar == (int)Keys.Escape) {&lt;br /&gt;
            this.SelectedIndex = -1;&lt;br /&gt;
            this.Text = &amp;quot;&amp;quot;;&lt;br /&gt;
            controlKey = true;&lt;br /&gt;
        } else if (Char.IsControl(e.KeyChar)) {&lt;br /&gt;
            controlKey = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            controlKey = false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    protected override void OnTextChanged(System.EventArgs e) {&lt;br /&gt;
        base.OnTextChanged(e);&lt;br /&gt;
        if (this.Text != &amp;quot;&amp;quot; &amp;amp;&amp;amp; !controlKey) {&lt;br /&gt;
            string matchText = this.Text;&lt;br /&gt;
            int match = this.FindString(matchText);&lt;br /&gt;
            if (match != -1) {&lt;br /&gt;
                this.SelectedIndex = match;&lt;br /&gt;
                this.SelectionStart = matchText.Length;&lt;br /&gt;
                this.SelectionLength = this.Text.Length - this.SelectionStart;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>