using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;


namespace InputPanelDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            #if DEBUG
                MinimizeBox = false;
            #else
                MinimizeBox = true;
            #endif
        }

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (InputMethod m in inputPanel.InputMethods)
            {
                if (m.Name == "Letter Recognizer")
                    inputPanel.CurrentInputMethod = m;
            }
            inputPanel.Enabled = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show(inputPanel.InputMethods.Count.ToString());
        }

        /// <summary>
        /// Получает коллекцию методов ввода
        /// </summary>
        private void GetInputMethods()
        {
            this.listBox1.Items.Clear();

            // Получаем коллекцию InputMethods
            // и каждый метод выводим в список
            foreach (InputMethod im in inputPanel.InputMethods)
            {
                this.listBox1.Items.Add(im.Name);
            }
        }

        private void butGetMethodsList_Click(object sender, EventArgs e)
        {
            GetInputMethods();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Получим выеделенный метод ввода из списка
            string strIM;
            strIM = listBox1.SelectedItem.ToString();

            // Проходим через коллекцию методов ввода
            // Если метод совпадает с выделенным методов в списке
            // то установим для свойства
            // CurrentInputMethod выбранный метод.
            foreach (InputMethod im in inputPanel.InputMethods)
            {
                if (im.Name == strIM)
                    // меняем метод ввода
                    inputPanel.CurrentInputMethod = im;
            }

            // Альтернативный способ для InputMethodCollection
            // вместо цикла foreach используем цикл for
            //  InputPanel.InputMethodCollection imc;
            //  imc = ip.InputMethods;
            //  for (int i = 0; i < imc.Count; i++)
            //  {
            //   if (imc[i].Name == strIM)
            //   {
            //    // меняем метод ввода
            //    ip.CurrentInputMethod = imc[i];
            //
            //    break;
            //   }
            //  }
        }
    }
}