Поделиться через


Практическое руководство. Отслеживание изменения атрибутов форматирования текста в элементе управления RichTextBox в Windows Forms

Часто используемым вариантом применения элемента управления RichTextBox в Windows Forms является форматирование текста с помощью таких атрибутов, как параметры шрифта или стили абзацев. Приложению может потребоваться отслеживать любые изменения в форматировании текста для отображения панели инструментов, как во многих текстовых процессорах.

Реагирование на изменения в атрибутах форматирования

  1. Напишите код в обработчике событий SelectionChanged для выполнения соответствующего действия в зависимости от значения атрибута. В приведенном ниже примере внешний вид кнопки на панели инструментов изменяется в зависимости от значения свойства SelectionBullet. Кнопка на панели инструментов будет обновляться только при перемещении системного курсора в элементе управления.

    В приведенном ниже примере предполагается наличие формы с элементом управления RichTextBox и элементом управления ToolBar, содержащим кнопку панели инструментов. Дополнительные сведения о панелях инструментов и их кнопках см. в статье Практическое руководство. Добавление кнопок в элемент управления ToolBar.

    ' The following code assumes the existence of a toolbar control  
    ' with at least one toolbar button.  
    Private Sub RichTextBox1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextBox1.SelectionChanged  
       If RichTextBox1.SelectionBullet = True Then  
          ' Bullet button on toolbar should appear pressed  
          ToolBarButton1.Pushed = True  
       Else  
           ' Bullet button on toolbar should appear unpressed  
           ToolBarButton1.Pushed = False  
       End If  
    End Sub  
    
    // The following code assumes the existence of a toolbar control  
    // with at least one toolbar button.  
    private void richTextBox1_SelectionChanged(object sender,  
    System.EventArgs e)  
    {  
       if (richTextBox1.SelectionBullet == true)
       {  
          // Bullet button on toolbar should appear pressed  
          toolBarButton1.Pushed = true;  
       }  
       else
       {  
          // Bullet button on toolbar should appear unpressed  
          toolBarButton1.Pushed = false;  
       }  
    }  
    
    // The following code assumes the existence of a toolbar control  
    // with at least one toolbar button.  
    private:  
       System::Void richTextBox1_SelectionChanged(  
          System::Object ^  sender, System::EventArgs ^  e)  
       {  
          if (richTextBox1->SelectionBullet == true)  
          {  
             // Bullet button on toolbar should appear pressed  
             toolBarButton1->Pushed = true;  
          }  
          else  
          {  
             // Bullet button on toolbar should appear unpressed  
             toolBarButton1->Pushed = false;  
          }  
       }  
    

См. также