【发布时间】:2013-03-27 20:34:53
【问题描述】:
我如何知道用户对 RichTextBox 中的文本所做的最后一次更改? 有功能吗? 或者我需要为它构建一个函数?
【问题讨论】:
标签: c# forms richtextbox
我如何知道用户对 RichTextBox 中的文本所做的最后一次更改? 有功能吗? 或者我需要为它构建一个函数?
【问题讨论】:
标签: c# forms richtextbox
将事件添加到您的文本框。选择您的文本框,转到属性,在事件选项卡中,您将看到不同的事件。查找 TextChanged 事件。将该事件添加到您的代码中。
每次更改文本框时都会触发此功能。您可以在该函数中编写逻辑。
【讨论】:
它提供了一个名为TextChanged 的event。您需要定义一个 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 获取文档。
【讨论】:
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;
}
【讨论】: