Tag: richtextbox

如何防止RichTextBox刷新其显示?

我有一个RichTextBox,我需要经常更新Text属性,但是当我这样做时,RichTextBox会因为在整个方法调用中刷新所有内容而“眨眼”。 我希望找到一种简单的方法来暂时禁止屏幕刷新,直到我的方法完成,但我在网上找到的唯一的事情就是覆盖WndProc方法。 我采用了这种方法,但有一些困难和副作用,它也使调试更加困难。 看起来似乎必须有更好的方法来做到这一点。 有人能指出我更好的解决方案吗?

检测富文本框内是否发生粘贴事件

有没有办法可以找出富文本框中是否发生剪贴板粘贴事件? 此事件将用于使用粘贴的文本块执行某些操作。 谢谢 这是我的代码 protected override void WndProc(ref System.Windows.Forms.Message m) { if (m.Msg == WM_PASTE) { OnPasteOccurred(); MessageBox.Show(“Pas”); } if (m.Msg == 0x000F) { if (PaintControl) { base.WndProc(ref m); } else { m.Result = IntPtr.Zero; } } else { base.WndProc(ref m); } } 编辑 我希望基于粘贴事件做一些语法突出显示或缩进,这个特定的代码编辑器似乎非常有效。 我不知道它是怎么做的。 在这个特定方向需要帮助。 我很确定必须有一些原生的Win32代码或类似的东西可以截取。 我试过追踪键,鼠标事件并不漂亮。

在RichTextBox中有选择地着色文本

每当我遇到RichTextBox中的字母“A”时,我怎么能用红色绘画?

RichTextBox语法实时突出显示 – 禁用重绘

我正在创建一个带有RichTextBox的函数,并且可以访问关键字列表和’badwords’。 我需要突出显示我在用户输入时在RichTextBox中找到的任何关键字和坏词,这意味着每次发布编辑键时都会调用该函数。 我写过这个函数,但是盒子里的文字和光标闪烁得太过舒服了。 我发现了一个解决方案 – 在我编辑和格式化文本时禁用RichTextBox重绘自身的能力。 但是,我知道这样做的唯一方法是覆盖“WndProc”函数并拦截(我将要收集的内容)重绘消息如下: protected override void WndProc(ref System.Windows.Forms.Message m) { if (m.Msg == 0x00f) { if (paint) base.WndProc(ref m); else m.Result = IntPtr.Zero; } else base.WndProc(ref m); } 在我开始突出显示之前将布尔’paint’设置为false,在我完成时将其设置为true。 但正如我所说,我制作的函数必须采用RichTextBox; 我不能使用子类。 那么,有没有办法禁止从外部自动重新绘制RichTextBox?

如何比较两个富文本框内容并突出显示更改的字符?

我用来读取2个richtextbox内容的代码如下: richTextBox1.Text = File.ReadAllText(tfsVersionFilePath); richTextBox2.Text = File.ReadAllText(dbVersionFilePath); 现在,我需要比较两个富文本框内容,并突出显示两个richtextbox中更改的字符。 目的是通过c#应用程序获取差异并突出显示as in TFS (比较文件)中的字符。 谢谢。 编辑: int length = (richTextBox1.Text.Length > richTextBox2.Text.Length) ? richTextBox1.Text.Length : richTextBox2.Text.Length; for (int i = 0; i < length; i++) { if (richTextBox1.Text[i] != richTextBox2.Text[i]) { /* and then start your highlight selection here, this is where some difference between the two […]

如何将图像插入RichTextBox?

我看到的大多数示例都说要把它放在剪贴板上并使用粘贴,但这似乎不是很好,因为它会覆盖剪贴板。 我确实看到一种方法 ,使用pinvoke手动将图像放入RTF,将图像转换为wmf。 这是最好的方法吗? 我还能做更直接的事吗?

C#:同步两个RichTextBox的滚动位置?

在我的应用程序的表单中,我有两个RichTextBox对象。 它们将始终具有相同数量的文本行。 我想“同步”这两者之间的垂直滚动,这样当用户在一个上改变垂直滚动位置时,另一个滚动相同的量。 我该怎么做呢?

更改richtextbox的字体而不会丢失格式

如何在不丢失格式的情况下更改richtextbox的所有内容的字体? 我正在尝试使用 rtb.SelectAll(); rtb.SelectionFont = new Font(fontName,…); 但是字体构造函数除了字体类型之外还必须采用字体样式(粗体,斜体,…)或字体大小。 因此,使用它会改变richtextbox的所有内容的样式/大小。 当然,同样适用于richtextbox中的任何选择。