2016-06-16 4 views
0

У меня есть RTB в моей форме, чтобы полужирная половина текста. КодексRichTextBox selected Текстовое свойство

 int start = richTextBox.Text.ToUpper().IndexOf(text.ToUpper()); 
     richTextBox.Select(start, text.Length); 
     richTextBox.SelectionFont = new Font(richTextBox.Font.Name, richTextBox.Font.Size, richTextBox.Font.Style^FontStyle.Bold); 

и я использую MenuItem класс для добавления пользовательского меню у меня в форме. Одно из меню: Copy Selected будет иметь event handler, который запускается, когда пользователь выбирает это меню в буфер обмена для вставки выделенного текста.

Проблема заключается в том, что пользователь не выбирает текст и не пытается вставить его, он вставляет выделенный текст, который я сделал для полужирного шрифта (выше в RTB), который является ошибкой. код в моем обработчике

void noteCopySelectedMenu_Click(object sender, EventArgs e) 
    { 
     if (sender != null) 
     { 
      MenuItem noteCopyMenu = (MenuItem)sender; 
      ContextMenu noteContextMenu = (ContextMenu)noteCopyMenu.Parent; 
      RichTextBox text = (RichTextBox)noteContextMenu.SourceControl; 
      if (text != null) 
      { 
       // Copy note to Clipboard 
       Clipboard.Clear(); 
       Clipboard.SetDataObject(text.SelectedText, false); 
      } 
     } 
    } 

text.SelectedText держит текст полужирный от RTB
Когда пользователь просто выберите меню без выбора какой-либо текст, он должен быть пустым. Как преодолеть это?

ответ

0

Вы можете изменить свой код, как это и поставить дополнительные проверки:

 if (text != null && text.SelectionLength > 0) 
     { 
      // Copy note to Clipboard 
      Clipboard.Clear(); 
      Clipboard.SetDataObject(text.SelectedText, false); 
     } 
+0

все еще имеет длину текста, которые я взял для Жирного .... поэтому состояние становится через, когда пользователь не выбирает любой текст –

Смежные вопросы