WPF中的RichTextBox文本内容更改事件

时间:2014-06-17 17:53:41

标签: c# wpf events richtextbox

我的应用程序中有一个RichTextBox。我需要处理这个RichTextBox的TextChange事件。有两种情况可以改变文本:

  1. 用户在文本框中输入了一些内容。 RichTextBox内容已更改。
  2. 在程序内部,我根据用户执行的不同操作更改RichTextBox的内容。在这种情况下,用户没有在RichTextBox中键入任何新内容。它只是在我改变RichTextBox内容的背景中。
  3. 我如何单独区分这两个事件?

    void SegFileDataContentChanged(object sender, EventArgs e)
    {
        if (EditorTabcontrol.SelectedIndex != -1)
        {
            try
            {
                TabItem selectedTabItem = tabItemList.ElementAt(EditorTabcontrol.SelectedIndex);
    
                SegmentFile selectedSegFile = segFileList.ElementAt(EditorTabcontrol.SelectedIndex);
    
                if (!selectedTabItem.Header.ToString().Contains('*'))
                    selectedTabItem.Header = selectedTabItem.Header + "*";
    
                selectedSegFile.DataContentChanged = true;
    
                //update dataContent to reflect lastest rtb.text
                RichTextBox selectedRTB = rtbList.ElementAt(EditorTabcontrol.SelectedIndex);             
    
                selectedSegFile.DataContent = new TextRange(selectedRTB.Document.ContentStart, selectedRTB.Document.ContentEnd).Text;                    
    
            }
            catch (Exception ex)
            {
                MessageBox.Show("SegFileDataContentChanged", "SegFileDataContentChanged Error", MessageBoxButton.OK);
                MessageBox.Show("Unknown Exception Thrown: " + "\n  Type:    " + ex.GetType().Name + "\n  Message: " + ex.Message);
            }
        }
        else
        {
            MessageBox.Show("No file open", "No File Open Error", MessageBoxButton.OK);
        }
    }
    

0 个答案:

没有答案