【问题标题】:RichTextBox last change checkRichTextBox 上次更改检查
【发布时间】:2013-03-27 20:34:53
【问题描述】:

我如何知道用户对 RichTextBox 中的文本所做的最后一次更改? 有功能吗? 或者我需要为它构建一个函数?

【问题讨论】:

    标签: c# forms richtextbox


    【解决方案1】:

    将事件添加到您的文本框。选择您的文本框,转到属性,在事件选项卡中,您将看到不同的事件。查找 TextChanged 事件。将该事件添加到您的代码中。

    每次更改文本框时都会触发此功能。您可以在该函数中编写逻辑。

    【讨论】:

      【解决方案2】:

      它提供了一个名为TextChangedevent。您需要定义一个 EventHandler 并指定当文本更改时会发生什么。

      例如:

      private void rtb_TextChanged(object sender, EventArgs e)
      {
          char c = rtb.Text.ElementAt(rtb.Text.Length);
          if(c == mystring.ElementAt(mystring.Length))
            //is equal
          mystring = rtb.Text; //save string for next comparison
      }
      

      现在您需要将事件处理程序添加到事件中

      rtb.TextChanged += rtb_TextChanged;
      

      查看here 获取文档。

      【讨论】:

      • 我猜,问题是关于跟踪变化。
      • 谢谢,但我想知道最后的字符变化。例如,如果我的文本是:“文本”,然后单击 8,那么文本将是“文本 8”,因此字符是 8。
      • 好吧,然后保存上次提供的字符串,并在事件触发时与它进行比较。
      • @bash.d:仅当更新是文本框中的最后一个字符时才有效。如果更新在内容的中间。这可能行不通。
      • 这是你需要弄清楚的。我给了你一个检查这个的可能性,而不是为你提供一个可行的解决方案,这是不可能开箱即用的。
      【解决方案3】:

      UpdatedChar 将包含新添加到 textbox1 的字符

      OldValue 将始终在 textbox1 中包含旧值

      来自您的示例:如果我的文字是:“Text”,然后我点击 8,那么 Text 将是“Text8”,因此 char 是 8。

      UpdatedChar=8 和 OldValue = 文字

          public string OldValue = string.Empty;
      
          public char UpdateChar;
      
          private void textBox1_TextChanged(object sender, EventArgs e)
          {
              var newText = sender as TextBox;
      
              foreach (var val in newText.Text)
              {
                  if(!OldValue.ToCharArray().Contains(val))
                      UpdateChar = val;
              }
      
              OldValue = newText.Text;
          }
      

      【讨论】:

      • @user2203448:这个解决方案有帮助吗?你的问题解决了吗?
      • 请注意,对文本的更改不仅限于添加单个字符:用户可以删除一个字符、一个范围或整个文本、粘贴一段文本等。另外,如果通过 IME 输入字符(就像在东亚语言中所做的那样),您会看到同时输入了几个字符。
      猜你喜欢
      • 2012-07-31
      • 2012-04-22
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      相关资源
      最近更新 更多