public void SetUp()
		{
			m_TextBox = new TextBox();
			m_TextBox.CreateControl();
			m_TextBox.Focus();
			Application.DoEvents();
			m_Handler = new IbusDefaultEventHandler(m_TextBox);
		}
		private void OnControlRegistered(object sender, RegisterEventArgs e)
		{
			if (e.Control != null)
			{
				var eventHandler = e.EventHandler as IIbusEventHandler;
				if (eventHandler == null)
				{
					Debug.Assert(e.Control is TextBox, "Currently only TextBox controls are compatible with the default IBus event handler.");
					eventHandler = new IbusDefaultEventHandler((TextBox)e.Control);
				}
				KeyboardController.Instance.EventHandlers[e.Control] = eventHandler;

				_ibusComm.CommitText += eventHandler.OnCommitText;
				_ibusComm.UpdatePreeditText += eventHandler.OnUpdatePreeditText;
				_ibusComm.HidePreeditText += eventHandler.OnHidePreeditText;
				_ibusComm.KeyEvent += eventHandler.OnIbusKeyPress;
				_ibusComm.DeleteSurroundingText += eventHandler.OnDeleteSurroundingText;

				e.Control.GotFocus += HandleGotFocus;
				e.Control.LostFocus += HandleLostFocus;
				e.Control.MouseDown += HandleMouseDown;
				e.Control.PreviewKeyDown += HandlePreviewKeyDown;
				e.Control.KeyPress += HandleKeyPress;

				var scrollableControl = e.Control as ScrollableControl;
				if (scrollableControl != null)
					scrollableControl.Scroll += HandleScroll;
			}
		}