[C#] Como colocar auto-visualizar teclado no .NET Compact

Encontrei esse código pela internet e estou disponibilizando aqui:

Código Fonte

internal static class ControlHelper
{
   private static bool IsGotLostFocusControl(Control ctl)
   {
      return ctl.GetType().IsSubclassOf(typeof(TextBoxBase)) || (ctl.GetType() == typeof(ComboBox) && (ctl as ComboBox).DropDownStyle == ComboBoxStyle.DropDown);
   }

   public static void AttachGotLostFocusEvents(
System.Windows.Forms.Control.ControlCollection controls,
EventHandler gotFocusEventHandler,
EventHandler lostFocusEventHandler)
   {
      foreach (Control ctl in controls)
      {
         if (IsGotLostFocusControl(ctl))
         {
            ctl.GotFocus += gotFocusEventHandler;
            ctl.LostFocus += lostFocusEventHandler;
         }
         else if (ctl.Controls.Count > 0)
         {
            AttachGotLostFocusEvents(ctl.Controls, gotFocusEventHandler, lostFocusEventHandler);
         }
      }
   }

   public static void DetachGotLostFocusEvents(
System.Windows.Forms.Control.ControlCollection controls,
EventHandler gotFocusEventHandler,
EventHandler lostFocusEventHandler)
   {
      foreach (Control ctl in controls)
      {
         if (IsGotLostFocusControl(ctl))
         {
            ctl.GotFocus -= gotFocusEventHandler;
            ctl.LostFocus -= lostFocusEventHandler;
         }
         else if (ctl.Controls.Count > 0)
         {
            DetachGotLostFocusEvents(ctl.Controls, gotFocusEventHandler, lostFocusEventHandler);
         }
      }
   }
}

Nos eventos da seguinte forma:

Código Fonte

private void Form_Load(object sender, EventArgs e)
{
   ControlHelper.AttachGotLostFocusEvents(
      this.Controls,
      new EventHandler(EditControl_GotFocus),
      new EventHandler(EditControl_LostFocus));
}

private void Form_Closed(object sender, EventArgs e)
{
   ControlHelper.DetachGotLostFocusEvents(
      this.Controls,
      new EventHandler(EditControl_GotFocus),
      new EventHandler(EditControl_LostFocus));
}

private void EditControl_GotFocus(object sender, EventArgs e)
{
   SetKeyboardVisible(true);
}

private void EditControl_LostFocus(object sender, EventArgs e)
{
   SetKeyboardVisible(false);
}

protected void SetKeyboardVisible(bool isVisible)
{
   inputPanel1.Enabled = isVisible;
}

Com isso ao clicar em um textbox ou combobox o teclado será mostrado.

OBS: Não esquecer de incluir o componente inputPanel no seu formulário.


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Como colocar auto-visualizar teclado no .NET Compact
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: