Search code examples
c#visual-studio-2008windows-mobilesoft-input-panel

How to detect/control the SoftInputPanel?


The SoftInputPanel, Soft Input Panel, or SIP is the on screen keyboard that displays on Windows Mobile devices.

How do I detect when someone clicks the SIP?

How do I programmatically enable/disable the SIP?

enter image description here


Solution

  • Never mind.

    Found a good article >> HERE <<.

    Basically include using Microsoft.WindowsCE.Forms; and a P/Invoke:

    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;
    using System.Runtime.InteropServices;
    
    namespace Test1 {
    
      public class Form1 : Form {
    
        [DllImport("coredll.dll")]
        public static extern bool SipShowIM(int dwFlag);
    
        InputPanel sip;
    
        public Form1() {
          InitializeComponent();
          sip = new InputPanel();
          sip.EnabledChanged += new EventHandler(SIP_EnabledChanged);
        }
    
        void SIP_EnabledChanged(object sender, EventArgs e) {
          if (sip.Enabled) {
            Console.WriteLine("Enabled");
          } else {
            Console.WriteLine("Disabled");
          }
        }
    
      }
    
    }