public void KeyTipSelect(KryptonRibbon ribbon)
{
// Can the richtextbox take the focus
if (_richTextBox.LastRichTextBox.CanFocus)
{
// Prevent the ribbon from killing keyboard mode when it loses the focus,
// as this causes the tracking windows to be killed and we want them kept
ribbon.LostFocusLosesKeyboard = false;
// Prevent the restore of focus when we fill the keyboard mode, as the focus
// has been placed on the richtextbox and so focus is allowed to change
ribbon.IgnoreRestoreFocus = true;
// Exit the use of keyboard mode
ribbon.KillKeyboardMode();
// Push focus to the specified target control
_richTextBox.LastRichTextBox.RichTextBox.Focus();
// If the richtextbox is inside a popup window
if (_richTextBox.LastParentControl is VisualPopupGroup)
{
// Ensure that the previous ribbon focus is restored when the popup window is dismissed
VisualPopupGroup popupGroup = (VisualPopupGroup)_richTextBox.LastParentControl;
popupGroup.RestorePreviousFocus = true;
}
}
}